3 ms·
My company does some embedded work. The problem with your analogy is that edge-cases drive CPU purchase decisions far more often than you would normally think.
by _red 8y ago
My company does some embedded work. The problem with your analogy is that edge-cases drive CPU purchase decisions far more often than you would normally think.
A simple example: You have designed an ATM using a lower powered ARM CPU. 99.9% of the use-cases never tax the CPU beyond 30%. However, in specific cases where the ATM must simultaneously access the bill dispenser, printer, and note acceptor the hardware interrupts overwhelm the CPU and leads to 2-3 secs of "CPU lock". After those 3 secs, everything returns to normal.
The problem is that the bill dispenser protocol only allows for 1000ms in delay in ack to messages, thus when this situation occurs, the lag is longer than the protocol allows, so it errors out and FUBARs the entire transaction.
In this case, even though this only occurs .1% of the time, the existence of this edge-case will mandate that you not use this specific CPU.
Spoken another way: The ongoing issue of certain edge-cases will cost much more in the long term, than the extra $50 for a different CPU.
- lsllc 8y agoHaving built exactly this kind of thing, a decent ARM CPU is more than capable of running these things together. Network (TLS encryption), bill stacker over MDB (which requires continuous polling otherwise the devices shut down), credit card swipe/NFC, keyboard, display, receipt printer (USB) and dispenser. Plenty of horse power left in both ARM Cortex-A8 and MIPS 24Kc configurations running Linux.
- _red 8y agoGreat. But you seem to have missed that I was just providing an example. However, to further the requirements. These days many people throw around the term "ATM" sort of indiscriminately. So, they call everything from a simple 3rd party cash dispensing kiosk to full-on bank automation centers "ATM's". The problem is, that for a simple cask dispensing kiosk, you may be totally correct. Linux + ARM may work fine. However, the more functionality this device is suppose to have (ie. do 90% of the functions of a real bank teller: deposit checks, cash checks, etc), then the more these edge-cases become an issue. Because of this tight integration with backend banking system, and regulatory requirements, these edge cases will become magnified (i.e. who says you can use linux?). Additionally, since all other players in this market also have to deal with all these issues, the $50 difference in CPU cost is totally absorbed into the rather high-dollar price tag associated with this automated teller.