10 ms·
It’s probably a lot more than 3. As an EE, plenty of chips you can get are built-in computers. You’re not going to write code that you make your users run (wha
by thrashh 5y ago
It’s probably a lot more than 3.
As an EE, plenty of chips you can get are built-in computers. You’re not going to write code that you make your users run (what a support nightmare!). You build your chip and provide an API.
And as a user, do you really want to figure how to run someone else’s code? Or do you just want a self contained unit that you slap onto your board that you just control via API?
Think of chips as microservices.
- beambot 5y agoEven the microSSD card likely has an ARM core that can be hacked: https://www.bunniestudios.com/blog/?p=3554 https://www.bunniestudios.com/blog/?p=3554
- unixbane 5y ago>Think of chips as microservices. This is a good analogy, but not in your favor. This is all part of the disease of modern computing where you program against a giant machine with a giant interface and you set a few config variables and have no idea or control over how it will work and your program winds up full of unintended behavior. See: game engines, gstreamer, web frameworks, browser API, HDMI modules, terminal emulators, shells (bash, etc).
- Kye 5y agoThe flip side is that the more popular an off-the-shelf tool is, the harder it is to sneak something in. Someone somewhere is bound to notice fishy behavior at a certain scale. It lowers the skill level required to understand the choices you make and make better choices. I wouldn't even know where to begin trying to notice, much less explore, what AT&T is doing at 1111340002. The more components with a million eyes watching it, the more attention you can direct toward the rest.
- unixbane 5y agoSo you're saying having giant IP modules inside your electronics is somehow making things more secure? They certainly don't make the product any less buggy.
- Kye 5y agoSometimes it goes down a dark path, like with Google moving all the important stuff in AOSP into a proprietary app attached to proprietary services most devices end up using to deal with phone vendors not updating. I'm not sure it's possible to come to a real determination here when the viewpoint counter to mine would require someone go find and study all the obscure little modules 2 people in the world know how to work with. The data is stacked in my favor, but it's hopelessly incomplete. I might be wrong.
- JohnFen 5y ago> Someone somewhere is bound to notice fishy behavior at a certain scale. I'm not convinced that this is true to a meaningful degree. It's certainly theoretically true. However, we've now had a number of events where bad things were found in fundamental and popular OSS software, and those things existed for years or even decades before being found. And who knows how many more exist that haven't been found, or at least publicized, yet (and may never be). I think the reality is that most devs aren't deeply examining the tools and libraries they use. How could we? We'd spend all of our time vetting software and little time writing it.
- sneak 5y agoWhat's the difference between a human and a cellphone? A human only has two ARMs.
- dreamcompiler 5y agoAs I often tell my kids, somebody has to do the dad jokes.
- LeifCarrotson 5y agoOne familiar chip that end users might not expect to contain a computer is the IMU or accelerometer. Take a look at this flyer from a recent Bosch smartphone IMU: https://www.bosch-sensortec.com/media/boschsensortec/downloads/product_flyer/bst-bmi260-fl000.pdf https://www.bosch-sensortec.com/media/boschsensortec/downloa... You might think an accelerometer just outputs acceleration data. I've used some that were purely analog; as an acceleration moved a mass, a strain gauge or piezo element flexed; the output wires were simply analog signals. But these excerpts: > ...combines precise acceleration and angular rate measurement with intelligent on- chip motion-triggered interrupt features. > The IMU provides highly accurate step counting, motion detection > provides an intelligent power management system enabling motion-triggered always-on features to run inside the ultra-low power domain of the IMU That ultra-low power domain of the IMU doesn't have dedicated logic to do step counting, it has a processor. The GPS IC has a processor. The power management IC is not just a voltage regulator, it contains a processor. The uSD card or UFS flash IC contains a processor. The camera sensors contain processors. The display controller contains a processor. Looking at a teardown, I can't see too many more ICs on a smartphone motherboard...oh, I suppose the noise-cancelling/speak to wake functions of the microphone ADC are probably also implemented by a processor. Some of those, depending on the manufacturer's vertical integration and the age of the device, are inside the SoC, but many of those functions that you might imagine to be hard-wired are actually running in firmware.
- surajrmal 5y agoYeah, basically everything that you consider a peripheral is a full blown computer with its own CPU and memory. Your nvme controller, your NIC, your USB hub, etc. They main thing people need to care about is whether or not they can connect to the internet without going through the main CPU on the system. I'm not worried about storage controllers for that reason, but I'm relatively afraid of my modem.
- rackjack 5y ago> Think of chips as microservices. That is an interesting perspective.
- SavantIdiot 5y agoFunny that you needed to use microservices as the base analogy for embedded MCUs. It illustrates how large the gaps are between hardware engineering, software engineering, and programming, compared to when I entered the field in the 80's. It was possible for one person to have principal-level knowledge in all three fields. The 90's broke that.
- Zenbit_UX 5y agoWhat do you believe is the distinction between software engineering and programming?
- kevin_thibedeau 5y agoNowadays peripheral ICs are usually accessed over SPI, I2C, onboard USB, or some other indirect method. It is common for complex devices to have a micro on the other side handling I/O requests rather than spilling their guts to the world. That "other micro" could also be a full blown multi-core processor with an MMU running at hundreds of MHz and beyond. The difference back then is that parallel bus interfaces were king and custom ASICs couldn't necessarily afford the gate overhead of an embedded micro at all.
- b112 5y agoAnd thus we understand the human brain more, a collection of specialized processing regions, with APIs.
- bencollier49 5y agohttps://en.wikipedia.org/wiki/Brodmann_area https://en.wikipedia.org/wiki/Brodmann_area
- ketzo 5y agoI mean, I’m a front end web developer, and I get fucked up about how little I know about backend web development. Embedded programming? Dealing with signals?! God forbid, man. There’s just so much of everything! Terrifying! But fun!
- sroussey 5y agoHeh, if you really want to go meta, you could talk about the microprocessors inside modern cpus and gpus and, oh man, systems in a chip…
- jeffreygoesto 5y agoYup. https://nvidia.github.io/open-gpu-doc/Falcon-Security/Falcon-Security.html https://nvidia.github.io/open-gpu-doc/Falcon-Security/Falcon... https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-RISC-V-Next-Gen-Falcon https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-R...
- rcxdude 5y agoIn one SoC I am familiar with, there is a ARM cortex-m3 core (far more powerful than the original PCs), with its own firmware, dedicated to managing power transitions in the SoC like suspend-to-RAM.
- sroussey 5y agoThere is likely one or more of these in every SoC!
- randyrand 5y agoApple SoCs have something like a dozen CPUs in them all running seperate firmware. a display processor, gpu message processor, etc. Asahi Linux has a write up somewhere.