The following warnings occurred:
Warning [2] Undefined array key 237068 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 237069 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 237072 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 237073 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 237075 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 237077 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 237140 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $thread - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $fid - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 237077 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 237075 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 237140 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $lang - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Attempt to read property "messages_in_thread" on null - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks





shelf life time of a ROM, EEPROM, EPROM vs Mask Rom



#2

All EEPROMs (Flash ROM), and EPROMs chips have a finite data retention time. Typically
10-15 years and after that they just start to forget their data.
A device using that technology for firmware storage will just
stop working when it is old enough even if all other circuits are still good.

Mask ROMs as used in old calculators do not have that problem because
the firmware is etched into the chip at production time.

All the older HP calculators used Mask ROMs and that is why we can still use those machines today.

Does anybody know where and when HP started to introduce EEPROM technology? Are there still calculators produced today which use Mask ROMs?


#3

Almost all calculators still use masked ROM. I suspect the only ones that don't are the ones with upgrade capability (the 48/49/50, 20/30 and most recent 12/15LE). For the manufacturer, masked ROM is cheaper.

The 10 year retention life of erasable memory is a *minimum* over temperature and voltage. When used at mostly room temperature, typical storage time will be in terms of centuries. And if, as stated above, they are reflashable, the data can always be reloaded and the clock started again.

For EPROMs, keeping short wave UV out is important - a simple black label (or having them inside a dark enclosure with the rest of the circuitry) is needed, of course. In my 40+ years of engineering I've yet to see an EPROM failure that way.

In short, there are many other failure modes that are much more likely to arise - solder joints crack, capacitors fail, corrosion breaks or shorts traces, intermetallic bonds fail inside ICs, etc. I wouldn't worry about programmable memory when compared to those.


#4

Quote:
When used at mostly room temperature, typical storage time will be in terms of centuries.

While the typical data retention time at room temperature will certainly be longer than the minimum specification of the part (usually 10 years), I very much doubt that it will be centuries. Even if the leakage rate is low enough that the charge on the floating gate in principle could last that long, there are other failure modes that are likely to cause failures more quickly than that. Not all failure modes are accurately modelled by accelerated ageing tests, so it is very difficult to predict a usable lifetime. This is one reason why most electronic component vendors rate the working lifetime of components at 5 or 10 years; the published MTBF figures are statistical measures of failure likelyhood only within the rated lifetime of a part. In other words, a part with an MTBF of 200,000 hours is NOT actually expected to last 22.8 years. What that MTBF tells you is that for a population of components, operated *within* the rated lifetime, the rate of failures for the population (not for any individual component). The MTBF doesn't tell you *anything* about the expected reliability or failure rate of the component beyond the rated lifetime. At some point past the rated lifetime, the component reaches the far end of the "bathtub curve", at which point the failure rate increased dramatically.

If a floating-gate memory device with a guaranteed data retention spec of 10 years, on average you can probably expect it to last longer than 10 years, but for the reasons above, every year that it continues to operate reliably past the 10 years should be considered a bonus, since there is no expectation of reliability past that time.

Bear in mind also that the data retention based on charge on the floating gate is itself a statistical process. The data can no longer be considered to have been retained as of the earliest time that a single bit in the device no longer reads reliably, which is likely to happen significantly sooner than average bit lifetime due to variations in the physical properties of the individual bit cells, as well as variations in the programming current and time for individual cells.

I worked on the PDP-1 Restoration Project at the Computer History Museum in Mountain View, California. The PDP-1 was made in the early 1960s. While we expect component failures, there is in principle no reason why it shouldn't be possible to maintain the PDP-1, replace failed transistors, and keep it running for the forseeable future. Probably at least another 50 years. (Because of the accelerating pace of change, it's arguably impossible to predict almost *anything* about human civilization beyond that timescale.)

On the other hand, I think it's unlikely that it will be possible to keep any electronic equipment manufactured after the mid-1990s operating for more than 25-50 years, in part due to the floating gate problem (even in places you don't expect it, because *many* chips now contain flash memory even if you don't know about it), and partly due to the general problem that modern ICs have become very specialized and have relatively short production lives.

In other words, 50 years from now we'll probably still have a working PDP-1, but sadly not too many working HP-35 calculators.


#5

Were the PDP-1's transistors germanium? Those definitely had a shorter lifespan. Silicon ones seem to be unlimited, as long as they're not operated hot. Virtually all the electronics equipment I bought in the 1970's is still working-- stereo, amateur radio, and test equipment. Ditto for the 80's, which includes all my calculator stuff (including tape drives), except that as I posted last year, a couple of modules in one of the 71's seemed to go south, but apparently the 71 misconfigured something, and re-inserting after a long time out of the 71 brought a new show of life. So possibly something is starting to go out in the 71.

As for how long an EPROM retains its program, Atmel has a good ap note for larger EPROMs telling about how programming of individual bytes can partially erase previously-programmed bytes, and how to check for it and correct the problem so the finished EPROM lasts many more years. http://www.atmel.com/Images/doc0578.pdf

Edited: 10 Jan 2013, 3:14 p.m.

#6

I have the 80-column HPIL video interface and the 82169A HPIL-to-HPIB converter which have EPROMs in them, which were made in the mid-1980's and still work. A few years ago for the first time I removed, read, re-programmed (in my EPROM programmer), and re-installed the EPROMs to make sure they would keep working for a long time, and kept EPROM images. The serial flash EEPROMs I've been buying specify a minium of 40 to 100 years' data retention.

In my 25 years of working with UV EPROMs, I've never seen an EPROM lose its data either. When I started with them in the mid-1980's I tried erasing them in the sun to see if I could get away without buying an eraser, and found it took at least a week outdoors, directly facing the sun.


#7

Quote:
The serial flash EEPROMs I've been buying specify a minium of 40 to 100 years' data retention.

All that means is that the part is likely to fail for some other reason before it fails due to charge leakage. I very much doubt that you could get the manufacturer to guarantee that the part will actually work correctly with no failures for 40 years.

There definitely are EPROMs programmed in the 1970s that still read correctly today, but there are also some that don't. They're reaching or even past the tail of the bathtub curve at this point, so you can't reasonably expect them to last so much as another year, although certainly they might.

#8

I have repaired an HP9810 where after a lot of searching one of the micro code ROMs was found to have lost some bits. This was an Intel 3301A which is a mask programmed ROM. So even these mask programmed ROMs may no live forever.


Possibly Related Threads…
Thread Author Replies Views Last Post
  HP9810A and HP9862A - ROM required? Thomas Falk 0 1,270 12-07-2013, 09:49 PM
Last Post: Thomas Falk
  ROM updates? Michael Carey 1 1,156 11-20-2013, 02:38 AM
Last Post: debrouxl
  [HP Prime]How to get Discrete-Time Fourier Transform uklo 0 1,478 11-18-2013, 08:02 PM
Last Post: uklo
  Date/time formats R. Pienne 4 2,139 11-01-2013, 12:43 PM
Last Post: Marcus von Cube, Germany
  How to set the Date.Time etc on a WP34S Harold A Climer 4 1,844 10-29-2013, 09:32 PM
Last Post: FORTIN Pascal
  Prime: Exam mode (possible duplicate after funny response first time) Paul Townsend (UK) 1 1,439 10-24-2013, 03:09 PM
Last Post: Tim Wessman
  Date/time programs for the HP 35s R. Pienne 0 1,066 10-03-2013, 02:37 PM
Last Post: R. Pienne
  Nonpareil Rom files davorin 2 1,404 09-20-2013, 06:20 PM
Last Post: Didier Lachieze
  HP 50G ROM now that HP Prime is out Han 8 2,583 09-19-2013, 05:02 PM
Last Post: Han
  OT: Reversing Sinclair's amazing 1974 calculator hack - half the ROM of the HP-35 Egan Ford 6 2,689 09-02-2013, 10:54 PM
Last Post: Thomas Klemm

Forum Jump: