fig2 is a block diagram of a one - chip microcomputer as one preferred embodiment of the invention . in fig2 the portion surrounded by a broken line illustrates a semiconductor integrated circuit lsi1 , and circuit blocks formed therein illustrate an architecture of the one - chip microcomputer as a whole . the microcomputer is suitably formed on one semiconductor , such as monocrystalline silicon ( although not particularly limited thereto ) by known manufacturing technology of semiconductor integrated circuits . symbol cpu2 designates a microprocessor , and main construction blocks of the microprocessor are exemplified as representative . that is , a3 designates an accumulator , x4 designates an index register , cc5 designates a condition code register , sp6 designates a stack pointer , pch7 , pcl8 designate program counters , cpu - cont9 designates a cpu controller , and alu designates an arithmetic logic unit . symbol i / o11 designates an input / output port which includes a data transmission directional register inside . symbol i12 designates an input exclusive port . symbol osc13 designates an oscillation circuit which forms a highly accurate reference frequency signal utilizing an external crystal vibrator xtal14 , although other suitable reference signals are suitable . clock pulses required in the microprocessor cpu are formed by the reference frequency signal . the reference frequency signal is used also as reference time pulse for a timer . the timer is composed of a counter cout15 , a prescaler pr16 and a controller cont17 . symbol ram18 designates a random access memory which is mainly used as a memory circuit for temporary data storage . symbol rom19 designates a read only memory which is comprised of a mask type rom , although not particularly limited thereto , and in which programs for processing various informations are written . the programs include a data write program for writing an eprom20 as will hereinafter be described . symbol eprom designates an erasable and programmable rom which is used mainly for storing important data to be held . for example , in an ic card for bank records , data such as receipt / payment data , or in an ic card for medical treatment records , data such as consultation data , such as a clinical chart may be stored . the above mentioned circuit blocks are connected to each other about the centrally positioned microprocessor cpu by a bus bus21 . the bus bus includes a data bus dat22 and an address bus add23 ( fig1 ) as hereinafter described . control signals to each memory and peripheral circuit are not shown . in this embodiment , when a write high voltage vpp24 of about 12 v or 21 v is supplied from the external terminal , the eprom20 receives address and data produced by the microprocessor and control signal commanding the write operation so that the write operation is performed . in the writing circuit for performing the write operation , the write time is variable . if data written in the eprom20 need not be erased in the integrated circuit lsi of this embodiment , the whole device is sealed by a plastic package . on the contrary , if the data should be erasable , a window for ultraviolet irradiation is provided at portion where the eprom20 is formed . in a new eprom , data at all locations is fixed to either &# 34 ; 1 &# 34 ; or &# 34 ; 0 &# 34 ; by the particular manufacturing method of the semiconductor element . data at the initial state , i . e . the erase state , is assumed herein to be a &# 34 ; 1 &# 34 ; for purposes of the following illustrations only . fig1 is a block diagram of an embodiment of a suitable eprom20 of fig2 having a variable duration or write time . a memory array m - ary25 is constructed of a matrix arrangement of non - volatile storage elements of stack gate structure , having floating gates and control gates ( hereinafter referred to as &# 34 ; stack gate transistors &# 34 ;). control gates of these stack gate transistors arranged on the same row are connected commonly to a corresponding word line , and drain electrodes of the transistors arranged on the same column are connected to a corresponding data line ( digit line or bit line ). one word line of the memory array m - ary is selected by an x address decoder x - dcr26 . that is , the x address decoder x - dcr26 has a latch circuit ff so that an address signal supplied through the address bus add23 is held in the latch circuit ff . then the x address decoder x - dcr 26 decodes the address signal , and sets one word line in a selective state . one data line of the memory array m - ary 25 is selected by a y address decoder y - dcr 27 . that is , the y address decoder y - dcr 27 has a latch circuit ff being similar to x - dcr 26 so that an address signal supplied through the address bus add 23 is held in the latch circuit ff . then the y address decoder y - dcr 27 decodes the address signal , and a column switch mosfet connecting the data line to the common data line is turned on . if the write mode is commanded when the high voltage vpp is supplied , the address decoders x - dcr 26 , y - dcr 27 form the selective signal of a high voltage level according to the high voltage vpp . on the contrary , if the read mode is commanded , the address decoders x - dcr 26 , y - dcr 27 form the selective signal of ordinary level according to relatively low voltage vcc being about 5 v . changing of the voltage vpp / vcc is performed by a write control circuit wc 28 as hereinafter described . the above mentioned common data line is connected to the data bus dat 22 through an input / output circuit i / o 32 . for example , during a read operation , the output circuit is enabled and transmits data of the common data line to the data bus dat 22 . during a write operation , the input circuit is enabled . if during a write operation data on a conductor of the data bus dat 22 is a logic &# 34 ; 0 &# 34 ;, the input circuit converts the data into the high voltage vpp and transmits the converted data to the common data line . if the data is a logic &# 34 ; 1 &# 34 ;, the input circuit transmits the ground potential level of the circuit to the common data line . the input circuit has a latch circuit similar to that of the address decoder , and holds the write data on the data bus dat 22 . the write signal from the microprocessor cpu sets a write flag wff 29 . while the wff 29 is set and the output signal pgm 31 is made high , the write control circuit wc 28 converts the voltage into a high voltage vpp . also the write control circuit wc 28 transmits the write signal wp 30 to the input circuit of the input / output i / o 32 . in this construction , if the corresponding write bit is a logic &# 34 ; 0 &# 34 ;, the input circuit makes the output the high voltage vpp . if the write bit is logic &# 34 ; 1 &# 34 ;, the input circuit makes it the ground level of the circuit . consequently , the write time is made variable according to set / reset of the write flag wff 29 by the microprocessor cpu . that is , the microprocessor cpu supplies the decoders x - dcr 26 , y - dcr 27 of the eprom with the specific address signal in the address space allocated to the eprom through the address bus add 23 , and also supplies the input circuit with the data to be written through the data bus dat 22 . the write flag wff 29 is set in this state . since the signal pgm 31 is made high and the high voltage vpp is supplied to the decoders x - dcr 26 , y - dcr 27 and the input circuit , the eprom starts the write operation . while the flag wff 29 is set , the decoders x - dcr 26 , y - dcr 27 and the input circuit hold respective address signal and data . utilizing the incorporated timer circuit shown in fig2 or according to program having a prescribed timer function , the write flag wff 29 is reset after lapse of the definite time . thus , the write operation of the eprom is finished . the write time of the eprom can be set to any value by the time setting according to the incorporated timer circuit or the timer program . fig3 is a block diagram of another embodiment of an eprom having a function of the write time being variable . in the case of the writing circuit shown in fig1 since the microprocessor cpu directly controls the write time of the eprom , other information processing cannot be performed during the time , or at least the information processing efficiency is significantly deteriorated . although use of the incorporated timer circuit can reduce the deterioration of the information processing efficiency , the hardware resources cannot be effectively utilized , particularly in applications where an eprom write frequency is high . if the write flag is set by mistake , due to runaway of the program or the like , the mistake write may be produced to the eprom or the write flag may be left in set state resulting in breakage of the storage element due to the excessive write . consequently , the writing circuit shown in fig3 is provided with a dedicated timer circuit tm 33 . the microprocessor cpu need only set the write time information for the timer circuit tm . the timer circuit tm 33 entirely controls the write time to the eprom . thereby the microprocessor cpu is free to perform other information processing operations during the write operation of the eprom . fig4 is a block diagram of an embodiment of a timer circuit tm 33 of fig3 . time information is written from the microprocessor cpu through the data bus dat 34 into the time register tr 35 . a down counter dct 36 is started by the microprocessor cpu in response to control signal ( not shown ) and the time information is set as initial value . the down counter dct 36 performs a count of pulse signals formed by an oscillation circuit osc 37 . thereby output signal pgm of a logic circuit lg 38 is made high , and the write operation is started in a similar manner to that described above . the logic circuit lg 38 detects a zero of the count value of the down counter dct 36 , and converts the write signal pgm 39 from a high level to a low level . thus , the write operation of the eprom is performed according to the time set by the timer circuit tm 33 . for example , if the oscillation period of the oscillation circuit osc 37 is t , value 100 ( decimal notation ) is set to the time register tr 35 , the write time becomes 100 × t . in this construction , any write time can be set according to period of the count signal supplied to the time register tr 35 and the oscillation signal . starting of the write is performed by setting the flag wff although not particularly limited thereto . the flag wff is cleared after the write is finished . in a microcomputer as shown in this embodiment , where the oscillation circuit is installed in addition to the timer circuit of the microcomputer , the clock is made variable . the definite write time can be set without being affected by the clock frequency . fig5 is a flow chart illustrating an example of a high - speed write algorithm using the writing circuit shown in fig3 . in step ( 1 ), the microprocessor cpu executes a write instruction to the eprom , and supplies the eprom with an address signal and a write data signal through the address bus add and the data bus dat , respectively . the eprom holds these signals in the latch circuit . in step ( 2 ), the cpu further clears content of the specific register ( n ← 0 ). in step ( 3 ), addition of + 1 is performed to the register ( n ← n + 1 ). in step ( 4 ), unit write time is written into the time register tr . for example , the oscillation period of the oscillation circuit osc is made 1 and the count value is set to 100 ( decimal notation ). thereby the unit time becomes 100 μs . in step ( 5 ), the write operation of 100 is performed . the cpu is free to perform other processing during this period . if the write signal pgm is converted from a high level to a low level , the microprocessor cpu is interrupted and a verify mode is commanded in step ( 6 ). thereby a read operation of the eprom is performed , and a decision is rendered regarding whether the read data of the non - volatile storage element corresponding to the write data of logic &# 34 ; 0 &# 34 ; becomes &# 34 ; 0 &# 34 ; or not . if a decision of coincidence in step ( 7 ) is no , a decision in step ( 10 ) is rendered regarding whether or not value n of the register is 25 . if the value n is 24 or less , the process is returned to step ( 3 ). thereby the write operation of 100 is performed again . if the unit write operation is performed 25 times , the storage element is concluded to be faulty in step ( 11 ), and the write operation is ended . that is , if the write operation of logic &# 34 ; 0 &# 34 ; is impossible , even spending the write time of total 2 . 5 ms , a failure is rendered and the operation is ended . if the write of logic &# 34 ; 0 &# 34 ; is concluded in step ( 7 ), the microprocessor cpu calculates 300 × n in step ( 8 ), and the result is set to the time register tr and an overlapped write operation is performed . that is , the overlapped write is performed in three times of 100n is required for the write operation of logic &# 34 ; 0 &# 34 ;. when the overlapped write is finished , the write signal pgm becomes low level in step ( 9 ) and the microprocessor cpu is interrupted . thus , the data write operation in the unit ( e . g . one byte ) is finished , and process is transferred to next write cycle or other information processing . the high - speed write algorithm as above described is performed according to program written in the rom although not particularly limited thereto . fig6 is a block diagram of an embodiment including a logic circuit for implementing the high - speed write algorithm shown in fig5 . fig6 further includes a comparator cmp 40 . the comparator cmp performs the read operation of the eprom in synchronization with variation of the write signal pgm from a high level to a low level , and further compares the content with the write data latched in the input circuit . if the result is coincident , the overlapped write signal opgm 41 becomes high level thereby the overlapped write is commanded to a timer circuit tm 42 . fig7 is a block diagram of an embodiment of the timer circuit tm 42 . if the timer circuit tm 42 is started by the microprocessor cpu according to a control signal ( not shown ), the content of a time register tr 43 is set to an initial value for a down counter dct 44 which starts the count operation . thereby output signal pgm 45 of a logic circuit lg 46 is made high and the write operation is started . the logic circuit lg 46 detects a zero of the count value of the down counter dct 44 , and converts the write signal pgm 45 from a high level to a low level at that time . then the comparator cmp 40 performs the verify operation . if the result is not coincident , an overlapped write signal opgm 41 is low . in this case , the content of the time register tr 43 is set to the down counter dct 44 , and the ation is repeated in similar manner to the above description . an up counter uct 47 detects variation of the write signal pgm 45 from a high level to a low level , and performs the count operation of the variation . even though content of the up counter uct 47 is coincident to prescribed value , e . g ., 25 , if overlapped write flag opgm 41 remains low , a write failure is determined and the write failure flag fail 48 is set . then the down counter dct 44 , the up counter uct 47 and the latch circuit are cleared . thus , the whole write operation is finished . if the overlapped write flag opgm 41 becomes high , a multiplier mul 49 multiplies content of the time register tr 43 by content of the up counter uct 47 at this time . the multiplier mul 49 further multiplies the result by three , for example , and the overlapped write time information is produced and set as initial value to the down counter dct 44 . thus , the write operation is started in similar manner to the above description . the overlapped write flag opgm 41 is held during this period . if the overlapped write is finished in this state and the write signal pgm 45 is varied from a high level to a low level , the down counter dct 44 , the up counter uct 47 and the latch circuit are cleared thus the overlapped write operation is finished . according to the above described method , the high speed write algorithm shown in fig5 can be executed without applying any burden to the software . that is , at the write of the eprom , the microprocessor cpu need only generate the starting signal to the assigning of the write address and the write data and writing circuit and can perform the write operation similarly to write to the ram . thereby deterioration of the information processing efficiency of the microprocessor cpu can be prevented . also in this case , it is preferable that the unit write time , the overlapped write time and the information of a failure decision can be assigned from the microprocessor cpu . for example , the time register tr after reset may only be assigned by the microprocessor cpu . or prescribed value in hardware fashion may be written into the time register tr43 at reset . in the high - speed write algorithm as above described , the write operation can be performed securely and rapidly at the minimum time corresponding to deviation of the individual element &# 39 ; s characteristics . setting of the write time in the writing circuit having the write variable function of fig1 or fig3 may be performed by the write time measured by the manufacturer . alternately , when the write method of fig5 is adopted , a mean value of n may be determined by the user and the write time may be set based on the mean value of n . since deterioration of write characteristics of the element is produced by repetition of write / erase , the write time or the overlapped write time may be lengthened corresponding to the number of repeated writes . when reliability of the memory holding is not strictly required in certain uses , particularly when the write cycle must be finished in a short time on account of the large amount of data to be written , the write time or the overlapped write time may be set to minimum . the write time information may be written in a specific address of the eprom , and the read operation of the specific address may be performed before starting on the write operation and the write time may be set automatically based on the read operation of the specific data . for example , if the count value of the time register tr35 in fig4 or value of n to be set in the register is written in the specific address of the eprom , the write time depending on the above - mentioned value can be set automatically . in the storage elements formed on the same semiconductor substrate , the write characteristics may be different from each other in range of about 100 times . that is , the maximum time required for the write operation may be 100 times as large as the minimum time . for example , assume that the assured value of the write time is 10 ms . during the test , in the circuit of the embodiment of fig3 the write operation of 100 is first performed , and the written element is decided passable and the remaining elements are further subjected to the write operation of 100 and a similar decision is performed . subsequently , the write operation is performed at 200 , 400 , 800 , 1600 and 3200 in sequence , and a similar decision is performed . when the write operation of 3200 is finished , the total write time becomes 6 . 4 ms and the elements being not yet written are determined to be defective so as to secure the margin to the assured value . in the embodiment of fig3 since such a method is implemented , the test time can be reduced effectively . particularly , when the self diagnosis is performed by the software during actual use , the above mentioned test method is more effective . also during actual use , the write processing flow as above described may be adopted . the write processing flow as above described can also be implemented by the logic circuit of fig6 . ( 1 ) since the write operation is performed by access from the microprocessor and the write time of the programmable rom is variable , the write operation can be performed at the minimum and optimum time corresponding to individual process deviations of each incorporated non - volatile storage element . thereby the write operation may be implemented rapidly and securely . ( 2 ) in order to make the write time variable , a flag to be set / reset by the microprocessor is used . the high - speed write operation is thereby implemented in a simple construction . ( 3 ) in order to make the write time variable , the time setting is performed by the timer circuit , including the counter circuit , to perform the count operation of prescribed periodic pulse signals according to the count information assigned from the microprocessor . in this construction , the microprocessor need only set the write time information to the timer circuit , and then the timer circuit entirely controls the write time . thereby the microprocessor is freed to perform other information processing during the write operation . ( 4 ) the timer circuit is provided with an oscillation circuit separate from the timer circuit of the microprocessor . consequently , even in the microcomputer with a variable clock time , a definite write time can be set without being affected by frequency of the clock . ( 5 ) after the write operation in the unit time set by the timer circuit , the verify operation of the programmable rom is performed . the write operation is continued over a plurality of unit times until the prescribed write signal is written , and then the overlapped write is performed by the present time . thereby the write operation can be performed rapidly and securely corresponding to deviation of the element characteristics . ( 6 ) if the logic circuit to implement the write operation is incorporated in the write circuit , the write operation can be performed rapidly and securely without deteriorating the information processing efficiency of the microprocessor . the present invention has been described with certain preferred embodiments . however , the invention is not limited to these embodiments , and various modifications may be made , of course , without departing from the spirit of the invention . for example , the non - volatile storage elements may be not only the stack gate transistor variety , but also eeprom ( being erasable electrically ) using mnos ( metal nitride oxide semiconductor ) transistors , or flotox ( floating gate tunneling oxide ) transistors . when the eeprom is used , the bootstrap circuit for generating the write high - voltage vpp may be incorporated . concrete circuits in each circuit block may be any circuit as long as it performs a similar operation to that of the above description . the invention includes programmable rom to enable the write operation electrically and a microprocessor to perform the write operation of the programmable rom . consequently , the invention can be widely utilized in semiconductor integrated circuits for various ic cards , data bank , or the like , which have the function of a microcomputer .