10 ms·
How Many Computers Are in Your Computer?
- amelius 8y ago... and how many are controlled by you?
- saagarjha 8y agoNone, probably, if you’re taking the definition of “open hardware” where you have full access to the microcode running on it and can modify it yourself.
- pkaye 8y agoWhat if it has no microcode running?
- shawnz 8y agoMicrocode is necessary to decode instructions. When you give the CPU instructions, it decodes them into microcode which is what actually specifies the sequence of electrical operations required to process that instruction.
- wnoise 8y agoCPUs without microcode exist. While microcode isn't exactly a new innovation, early mass-market CPUs were not implemented that way.
- pjmlp 8y agoMicrocode free CPUs was mostly a RISC thing, and basic CPUs like Z80 and 6502, almost everyone else always had some form of microcode in them.
- shakna 8y ago> CPUs without microcode exist. While microcode isn't exactly a new innovation, early mass-market CPUs were not implemented that way. > Microcode free CPUs was mostly a RISC thing, and basic CPUs like Z80 and 6502 Those quotes aren't incompatible - the 6502 and Z80 are core to the early mass-market computer movement. So whilst microcode-free may be rare now, there was a time when it was the norm.
- pjmlp 8y agoThe norm in the context of 8 bit home micros.
- shawnz 8y agoRight, but it wouldn't be possible for a modern CPU (for example: how would you retain compatibility with older architectures? how would you patch it if you find a critical bug in an instruction?) Furthermore the parent was asking about having no microcode running on the CPU which is what I was speaking to. A CPU designed to use microcode can't be run without microcode. But yes, it is of course possible to design the CPU to not use microcode in the first place.
- kazinator 8y agoMMU page faults and floating-point units are not independent programmable machines; their actions are coordinated by the processor into which they are integrated.
- monocasa 8y agoThe page table walking hardware on x86 is pretty distinct from the main core, and is Turing complete. https://github.com/jbangert/trapcc https://github.com/jbangert/trapcc
- kazinator 8y agoCan you run this software if the core is removed or disabled?
- deleted 8y ago[deleted]
- gwern 8y agoCan you start or run your computer if the BIOS is removed or disabled? Or the power cord? No? Then does that mean the BIOS or power cord are the computer and the CPU is not a computer? Being necessary does not establish sufficiency, much less identity...
- kazinator 8y agoTo remain within the scope, content and intent of my argument, I would say that the pieces identified as "BIOS", "power cord" and "CPU" do not constitute three separate computers. I believe there is only one, but "at most one" is a compromise that works for me.
- monocasa 8y agoCan you run code on a GPU if the cores that can touch it's configuration registers are disabled? Or the imaging DSPs in an SoC? Does that make them any less of processors?
- pjscott 8y agoA paper linked from that page, "MOV is Turing-complete", is as hilarious as it is clever. https://www.cl.cam.ac.uk/~sd601/papers/mov.pdf https://www.cl.cam.ac.uk/~sd601/papers/mov.pdf If you've ever wanted someone to accuse the x86 architecture of having too few registers, this is your URL.
- ohazi 8y agoIt's not just a paper... there's a reference implementation! https://github.com/xoreaxeaxeax/movfuscator https://github.com/xoreaxeaxeax/movfuscator
- pjscott 8y agoAnd an implementation of Doom at merely 7 hours per frame! https://github.com/xoreaxeaxeax/movfuscator/tree/master/validation/doom https://github.com/xoreaxeaxeax/movfuscator/tree/master/vali...
- officialjunk 8y agoit’s computers all the way down.
- tabtab 8y ago"640 computers inside a computer ought to be enough for anyone." -Gill Bates
- kev009 8y agoThe cpu also has typically multiple independent CPUs to control things like power saving and turbo boost. Modern intel cpus have multiple 486-class CPUs, one for this, one for the ME, and one that vendors can use that has SMM access (which is as scary or more so than the ME). OpenPOWER is pretty neat because you can actually see what commercially relevant implementations of these firmwares look like https://github.com/open-power/occ https://github.com/open-power/occ A lot of NICs are also completely based on multiple general purpose MIPS cores like Broadcom and Mellanox. The most common SAS HBA from LSI/Broadcom was a PowerPC SoC. And SATA/SAS drives are running multiple ARM Cortex M series MCUs for the bus interface, drive geometry, and FTL in the case of flash. The BMC (IPMI) is also a self sufficient ARM computer.
- tkahnoski 8y ago"How many companies inside your computer?" is the more concerning problem to me. But that's just my tinfoil hat talking.
- naikrovek 8y agoOoh, watch out. If you have a talking tin foil hat, it was likely provided to you by a corporate entity. (This is a poor joke about sourcing tin foil hats)
- octosphere 8y ago"How many binary blobs inside your computer?" is even more pressing. For the paranoid you could always buy a Purism[1] laptop with Trisquel[2] (pure libre Linux) running on it (if that's even possible, I'm not sure) [1] https://puri.sm/ https://puri.sm/ [2] https://trisquel.info/ https://trisquel.info/
- riskneutral 8y agoThis is a very good article about the different computing units inside servers and smartphones. However I found the discussion of AI and neural nets to be confusing and seemingly unrelated.
- richardbdrowley 8y agoGwern does a lot of drugs.
- Nokinside 8y agoIf you own a modern a car, they typically have 50-70 microcontroller units. Some of them have several cores and DSP units. At the lower end you have 8051, Atmel AVR or 8 - 16 -bit Renesans chips.
- blattimwind 8y agoAnything with a CAN or LIN bus connection has at least one MCU in it.
- ianhowson 8y agoThere are probably another order of magnitude more computers in a 'computer' than Gwern estimates. Consider: - Power management chips (of which there are dozens) each containing programmable MCUs - Batteries, of course, contain one or more MCUs each - Clocks - 'Glue' MCUs for things like DMA controllers and USB controllers. (USB controller firmware has been exploited from the port side, and it's not upgradeable) - Supervisors - RGB LEDs (!) - SD cards have several (see Bunnie's work) - Ethernet, WiFi and Bluetooth controllers contain several small and usually a few large computers each Some of these have fully-baked ROM code, some are programmed and modifiable through flash, and some have firmware written at driver load time to save money.
- leggomylibro 8y agoMany of those chips are not programmable though, or are 'programmed' through things like voltage dividers. At what point do you consider a chip a 'computer'? Would something like a voltage regulator or mux/demux count as an ASIC?
- ianhowson 8y agoI'm considering anything that runs firmware. I wouldn't consider e.g. a regulator with configurable voltage via resistor divider to count. I would consider a switchmode PSU where the main switch FET is driven by a microcontroller running firmware (they can then have an I2C/SPI input to allow programmable voltage control). There are probably dozens of these in any modern computer.
- TimTheTinker 8y agoI once knew a hardware engineer who worked on a team designing cutting-edge equipment. His mantra was “just use a PIC chip”. He had all sorts of war stories about other engineers coming to him with power regulator designs they just couldn’t get right. He’d often add a PIC chip or two and have the firmware dev write a few routines in C. Problem solved. PIC chips are small, they are everywhere, they are very useful for adding complex, software-defined behavior (including DSP) at the circuit component level, and they are full general-purpose CPUs with onboard RAM and programmable ROM.
- cbkeller 8y ago> any floating point unit may be Turing-complete through encoding into floating-point operations in the spirit of FRACTRAN Well that's the most interesting thing I learned today
- akjetma 8y agoDon't mean to nitpick, just wasn't able to parse this: > Each of the 2-8 main CPU cores can run independently, shutting on or off as necessary, and has its own private cache (bigger than most computers’ RAM up to even recently) ... Aren't CPU caches necessarily much smaller than RAM?
- BurningFrog 8y agoYes, but caches now are bigger than RAM was before.
- akjetma 8y agoAhhh, that makes sense, thanks!
- gexcolo 8y agoim a computer computer
- arcanus 8y agoAlso interesting to consider: how many organisms are in a human being? We think of ourselves as a single entity, but we are composed of many life forms: Mitochondria, viruses, gut bacteria...
- kibwen 8y agoSome human beings even have whole other human beings inside of them, though for the moment computer manufacturing is a bit more sterile than all that.
- rounce 8y agoModern CPUs have other CPUs inside them, they never give birth though.
- ac29 8y agoThe human body contains approximately as many bacterial cells as human cells: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4991899/ https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4991899/
- newman8r 8y agoor, how many 'minds' are in a human being? based on split brain experiments, https://en.wikipedia.org/wiki/Split-brain https://en.wikipedia.org/wiki/Split-brain I think you could make the argument that it's >1
- kibwen 8y ago> Each of the 2-8 main CPU cores can run independently, shutting on or off as necessary, and has its own private cache (bigger than most computers’ RAM up to even recently) Can someone elaborate on this? Do CPUs really have gigs of on-die RAM for their own private use? What are those used for? Or is this just roundaboutly referring to the usual cache hierarchy? If it's the latter, AFAIK CPUs have under tens of megabytes of cache, and it's been decades since the average desktop had 32 MB of RAM--a bit far from recent.
- aeturnum 8y agoHe's talking about "recently" in the age of computing hardware, not the last few years. You need to wait until around 1995[1] to find a mac with more standard RAM than an i9 has in its L2 cache[2]. [1] https://en.wikipedia.org/wiki/Power_Macintosh_5200_LC https://en.wikipedia.org/wiki/Power_Macintosh_5200_LC [2] https://en.wikichip.org/wiki/intel/core_i9/i9-7900x https://en.wikichip.org/wiki/intel/core_i9/i9-7900x
- kibwen 8y agoI see. I was hoping there was something more interesting going on, such as CPU-private bookkeeping... or perhaps supporting that JVM that lives in the management engine. :)
- jakevn 8y agoHuh. I personally have never treated the word computer as a synonym of CPU, APU, GPU, Turing Machine, etc. To me this article reads more like, "I want to redefine what computer means and then tell you all of the things that fall under my definition." But yes, there are indeed many components that make up the modern computers that are our smartphones, laptops, et cetera.
- pbhjpbhj 8y agoNo, a computer of course is a person who performs calculations. https://en.m.wikipedia.org/wiki/Human_computer https://en.m.wikipedia.org/wiki/Human_computer
- suzzer99 8y agoThey really dropped the ball not embedding an Xzibit in this paper.
- exikyut 8y ago> Alvin Nathaniel Joiner (born September 18, 1974), better known by the stage name Xzibit (pronounced "exzibit"), is an American rapper and broadcaster. I'm not getting anything else from Google except https://en.wikipedia.org/wiki/Xzibit https://en.wikipedia.org/wiki/Xzibit
- gordo4 8y agoYo Dawg" is an image macro series based on portrait shots of American hip hop artist Alvin Nathaniel Joiner (better known by his stage name Xzibit) and humorous captions that are composed around the recursive phrasal template "Yo Dawg, I herd you like (noun X), so I put an (noun X) in your (noun Y) so you can (verb Z) while you (verb Z)." Since rising to popularity in early 2007, the series has been considered one of the most well-known and longest lasting examples of recursive humor on the Internet. https://knowyourmeme.com/memes/xzibit-yo-dawg?full=1 https://knowyourmeme.com/memes/xzibit-yo-dawg?full=1
- exikyut 8y agoHN is the best place to find quality, (frequently) low-noise information about everything! I was aware of the meme, but not its origin. Thanks.
- exikyut 8y agoThe part of this that leapt out at me that I wish there were comments about was: > ...custom on-die silicon (implemented by Intel on Xeon chips for a number of its biggest customers)... I'm only aware of Amazon having custom CPUs, but I know no details about what's been customized. Where might I be able to read more about this sort of thing?
- fulafel 8y agoThere can also be analog computers, those might be harder to recognise.
- phoboslab 8y ago> Each of the 2-8 main CPU cores (...) has its own private cache (bigger than most computers’ RAM up to even recently) That sounds odd. I take it the author is not talking about the L1, L2 L3 caches, as they are typically only a few MB in size? So what is meant by this statement?
- beokop 8y agoI think he’s using the broader definition of computer in this case. Think microwaves etc.
- gwern 8y agoI remember when desktop computers had total RAM measured in single megabytes. It wasn't that long ago. (Get off my lawn, you kids!)
- glandium 8y agoSingle digit megabytes? Get off my lawn kid. I'm not that old but I remember when computers had total RAM measured in TWO digit KILObytes.
- marcosdumay 8y agoHe is talking about L1 and L2 caches. They usually use more area than the CPUs, even them being only a few MB in size.
- phoboslab 8y agoOh, so the physical size on the die, not the size in bytes. That makes sense!
- ttsiodras 8y agoActually, no - he meant the size in bytes. For example, my Digital Ocean droplet reports... # egrep '^(cache |model )' /proc/cpuinfo model name : Intel(R) Xeon(R) CPU E5-2630L 0 @ 2.00GHz cache size : 15360 KB To understand the context of the article's claim, let me just add that we used to make fun of Emacs people by saying the name stood for "Eight Megabytes And Constantly Swapping". That was a time when a machine with 8MB was a big one. You can see above that machines nowadays have caches larger than that! And to compensate, we've now invented editors based on Javascript :-)
- baybal2 8y agoIndeed, in worst case scenario, a PC can hold like 20+ pieces of silicon running their own OSes. Even something as primitive as a PMIC, signal switch, or a USB hub can hold a fully features RTOS
- moyix 8y agoTo add a one more: the Macbook charging bricks have an MSP430 in them [1], "roughly as powerful as the processor inside the original Macintosh". It's definitely Turing complete; you may not get tons of access to the rest of the machine, but it might serve as a vantage point from which to launch power-based side channel attacks [2] (yes, you only get the overall power draw from this but that's no barrier [3]). [1] http://www.righto.com/2015/11/macbook-charger-teardown-surprising.html http://www.righto.com/2015/11/macbook-charger-teardown-surpr... [2] https://en.wikipedia.org/wiki/Power_analysis https://en.wikipedia.org/wiki/Power_analysis [3] https://m.tau.ac.il/~tromer/handsoff/ https://m.tau.ac.il/~tromer/handsoff/ "Our attacks use novel side channels and are based on the observation that the "ground" electric potential in many computers fluctuates in a computation-dependent way."