analogue risc core, amazing idea? - Page 1
Forum section: electronics / beginners

author: robowaffe
author_rank: Regular Contributor
timestamp: July 18, 2023, 08:50:33 am
content: What do u guys think of an analogue risc core, it would be 32 times less wires than a 32 bit one, that would be 32 times smaller, seems like a good idea to me.

author: Zero999
author_rank: Super Contributor
timestamp: July 18, 2023, 08:56:15 am
content: What do you mean?Analogue computers used to be the norm, but they fell out of favour, because they're less accurate. For example, it's difficult to build a four quadrant analogue multiplier with a tolerance of better than 1%, yet a digital circuit can achieve much better accuracy with little effort.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 18, 2023, 09:04:25 am
content: yeh that's true, u got drift on your values as they go through, but 32 times more cores in the same space? 32x faster!!I don't know how bad tolerance affects the machine, but maybe u can still have a 24 bit value, to start off from, it just swims as it computes,it always picks it up off the last swim so it always maintains to the logic of the system, its just a bit of random joystick drift as it goes.So if u were doing soft body dynamics the springs would still re-correct correctly each time. cause anything that's constant during the compute,doesn't have to drift, only the state variables that maintain the current simulation frame actually drift during the compute. (the positions and velocities of things.)Anything that is constant, like spring distances, strengths, can actually not drift, and they come out of the core array.So anything that changes drifts, but anything that is constant doesnt! (Comes out of a shared memory on the outside of the array.)So instead of making 1 risc processor at 32 bit, u can make 32 drifting processors in the same space, working in parallel.<edit>I just had a think about tolerance.I think if u use .5% tolerance it only sorta effects u on the first resistor the most, because then its just the same percentage error on the next resistor, and next, so u can go through any amount of series and it doesnt get worse, its just u only get say 7 bits out of it, and the rest is random, even frame to frame, it just rerandomizes what it already randomized.but it sorta sticks the core to 7 bit, what the tolerance is, permanent sorta loss.So with resistors, it actually doesnt drift that much, its just least significant bit loss!!!But I guess if it was slightly high it drifts high, slightly low it drifts low at the end - once u average up all the resistors u went through.

author: Kleinstein
author_rank: Super Contributor
timestamp: July 18, 2023, 09:24:50 am
content: Analog computers have a limited accuracy / resolution. In that respect they are more like a 8 bit digital computer maybe 12 bits.Another point is that to be reasonable accurate analog computers are also limited in the speed - digital CMOS got amazing speeds.The operations for analog computers are also limited - some parts (e.g. differentiation, integration) work reasonable well, but already a simple multiplication is rather limited.Analog computers are kind of limited in the things they can do, they are by no mean universal. They are resonable good in simulating linear differential equations, but totally fail at things like word processing and data bases.

author: Terry Bites
author_rank: Super Contributor
timestamp: July 18, 2023, 09:26:33 am
content: Its not a new idea. Programable analaog arrays were mooted in the late 70's.

author: Berni
author_rank: Super Contributor
timestamp: July 18, 2023, 09:29:54 am
content: No analog computers don't work like that.For 32bit you need to represent 4294967296 levels, so even if you make your levels go from -10V to +10V then one increment is only 4.6 nV. There is no analog circuitry in the world that can be that precise at high speed. Even if you go to 24bit that is 1.1uV. This is possible with analog circuits at low speed but not at the GHz speeds you would want a CPU to run at. Remember that getting just 1 bit wrong in a calculation in the wrong spot could make a computer completely crash.Analog chips also use huge transistor sizes as they optimize the transistors for precision and stability rather than speed. So while we these gigantic bleeding edge EUV lithography machines are used to make 5nm transistors for CPUs, the analog stuff is still using processes >1000 nm .Analog computers were kings of performance in the 1970s when we could not pack enough transistors into chips to be fast enough for high speed real time signal processing.However analog computers are indeed making a return. Turns out that running AI tasks does not need a lot of bit depth, often just 8 bits is enough to make it work, also if there is a slight miscalculation the result is not a complete failure, a lot of AI implement a bit of randomness into them anyway to avoid the AI algorithm focusing on one path. At 8bit you only need 256 levels and this is doable in analog using small non precision transistors running at high speeds. This lets them fit a lot of calculation units into a chip and AI is a very parallelizeable task. So there is a lot of research right now into making such analog based AI accelerator chips.In real world computing more execution units does not always mean more speed. We already have consumer graphics cards with >10000 cores inside one GPU. Just that these 'cores' are very dumb cores that are good at doing math very fast, but do not handle complex branching programs very well.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 18, 2023, 09:46:47 am
content: Quote from: Kleinstein on July 18, 2023, 09:24:50 amBut if u get 8 bits on each line, then even with your tolerance errors, your still making a completely error free 32 bit processor with just 4 lines, instead of 32, so its just hands down better there.Quote from: Terry Bites on July 18, 2023, 09:26:33 amWhat do u mean by mooted? Have you got an example of some information about this? I'd be very interested to see it.Quote from: Berni on July 18, 2023, 09:29:54 amu can put trees on a gpu, and they do handle random accesses probably not as good as cpu's, but they can still do it fast enough to beat them given enough cores. Its a matter of accessing less memory with them, a gpu gets more efficient the smaller the state is its accessing per core.Quote from: Berni on July 18, 2023, 09:29:54 amthats only for system critical values, say if its just where a space invader is on the screen, it doesnt matter if it gets noise on the value.Quote from: Berni on July 18, 2023, 09:29:54 amI dont see how a 5 nm transistor can't put out scalar values just as well as it puts out on off signals.

author: Kleinstein
author_rank: Super Contributor
timestamp: July 18, 2023, 09:58:53 am
content: A problem with analog computers is that you can not easily combine multiple channels for more precision. In the anlog world it need 4 parallel channels to reduce the noise by a factor 2 (or one more bit) and this still would not fix linearity and drift problems.In some areas one could combine signals for more resolution, but this is more like going from analog to digital and back to analog to do this and this come with high effort and quite some speed penalty. Even with just digital logic a 32 bit operation is more than four 8 bit operations in parallel.Neural networks are one point that could work with limited resolution and there were some try on doing this in a more analog way. However AFAIK these attempts were rather fruitless and stopped well before AI got popular.

author: RoGeorge
author_rank: Super Contributor
timestamp: July 18, 2023, 10:08:40 am
content: There is something called FPAA, but the idea didn't take flight.https://en.wikipedia.org/wiki/Field-programmable_analog_array

author: robowaffe
author_rank: Regular Contributor
timestamp: July 18, 2023, 10:15:29 am
content: Quote from: Kleinstein on July 18, 2023, 09:58:53 amThanks for the tip!!! So if you include so many random samples of the tolerance its finds the average of the error??? thats amazing!!!Quote from: Kleinstein on July 18, 2023, 09:58:53 amThe logic that runs an adc goes just as fast as the rest of the logic of your system, its no different.Quote from: Kleinstein on July 18, 2023, 09:58:53 amI know how to train neural networks, and it doesn't seem fruitless to me, maybe fruitless monetary wise, but thats just fruitless fruitlessness cause its just money.Quote from: RoGeorge on July 18, 2023, 10:08:40 amThat looks like a good piece of machinery, if it didn't "take flight" thats got nothing to do with the superiority of the machine, when money and marketing gets ahold of things it makes useful things useless, cause what if they asked too much for it? Then it wouldn't sell even if it was better! The amiga didn't take flight, but that doesn't mean it was any worse than PC's, it was just some bullshit that took it off the market.So with FPAA, that means u can put analogue risc processors in it??? So that means u should get 32 times more cores in it. But if they ask for 32 times more bucks... whats da point?<edit>is it because they are too hard to use cause they haven't got easy to use binary truth tables, and makes it more exclusive if u can actually use it? Maybe anyone that can use one would rather not have all the extra wires in it taking up all the space for all the dynamic routing you don't need. So once ur up to the FPAA stage, u don't even need to use it any more, so there just isn't a market for them.

author: Berni
author_rank: Super Contributor
timestamp: July 18, 2023, 11:35:13 am
content: The computers we use these days very much depend on calculations being accurate every time.A lot of the computation in a modern computer is moving around memory address pointers or flipping flag bits. Every single time you call a function you are jumping execution to a new memory address and while doing that you are context saving CPU registers to the stack using an stack pointer. Any of this going wrong for just 1 bit in a 32bit word typically results in a catastrophic crash (be it the application crashing and getting killed by the OS, or the OS itself crashing to a bluescreen/panic). Mistake during a branch could also send the execution down completely the wrong path. So a computer that makes a calculation mistake only 0.0001% of the time would be completely unusable since it would crash randomly multiple times per minute.We don't have the technology to make 5nm transistors with good stable linear performance. Maybe that will change in the future, but we are not there yet. But even if we did have it, reducing the transistor count from 32 per word to 4 per word would not actually make your computer 8 times faster magically. Sure you could fit them more on a chip, but analog also burns more power, so it would still get limited by the power budget of the CPU package and its cooling. The operating frequency of such a analog computer would also be lower because you would need longer clock periods for the signals to stabilize. But even if you could run it at the same GHz rate, then you are doing the same amount of single threaded work, only benefit is having more cores available.More cores does not mean faster. Why don't we run everything on the 10000 core GPUs then? Yes they can handle random accesses and branching, but not at high performance. Even if we did make the cores as flexible as a x86 core, not all tasks can be spread across so many cores

author: robowaffe
author_rank: Regular Contributor
timestamp: July 18, 2023, 11:46:51 am
content: Quote from: Berni on July 18, 2023, 11:35:13 amFor a single channel core->You wouldn't use it for the OS, youd run games, physics sims, music, electronics sims, if it were playing chess, then yeh probably would'nt be good if it missed a square, but theres lots of situations where being just off is almost as good, and anything like that would be really good for it. But in chess the board is only 8x8, so theres only 3 bits in one dimension of it, so it could handle chess as well.Quote from: Berni on July 18, 2023, 11:35:13 amSo thats one of the weaknesses of transistors and OPAMPS. U just cant use them for everything, they suck complete balls in some situations and maybe there is a better solution.Quote from: Berni on July 18, 2023, 11:35:13 amCPUS can't do->* train neural networks quickly.* match strings en mass.* raytrace quickly.* simulating large amount of electronics components.* have large unit counts in war games.* anything involving a large repeated set of units.

author: brucehoult
author_rank: Super Contributor
timestamp: July 18, 2023, 12:03:05 pm
content: Quote from: robowaffe on July 18, 2023, 09:46:47 amFeel free to try, plenty of other people have.All signals have to be cleaned up and refreshed every processing step, or every few at most. In binary this is an inverter, which amplifies anything above a threshold voltage down to hard zero (or whatever the lowest output level is), and anything above the threshold gets smashed hard up into being a 1. Lots of designs are made entirely from NAND or NOR gates because they self-clean up. The Cray 1 was famously made from only 4-input NOR gates and 5-input NOR gates and two kinds of SRAM chips.A 256 level signal needs, in simplified terms, 255 comparators to clean up the signal. But each of those has a binary output, which then have to be combined into a new 256-level signal. But those 255 wires could carry a 255 bit signal instead of just representing one 8 bit signal. You could do it with less circuitry by using multiple layers of circuits, but then that takes more time.It's worth doing this kind of thing when the wire with 256 levels on it is a few km long telephone wire, but it's not worth it when the wire is a fraction of a mm long from an adjacent circuit element.Even 3 levels on one wire loses to binary. A 3-level signal needs 2 comparators to clear it up, and two could just operate on two different wires instead of one, for 4 distinct values instead of three.It's not the wires that are that you have to count, it's the transistors.[all the above simplified but it's essentially correct]

author: Simon
author_rank: Unknown
timestamp: July 18, 2023, 12:18:03 pm
content: If you want to represent a 32 bit value on one wile it will have to be accurate to four and a third billionths of the full scale voltage, in fact to be on the safe side more like 8 to 12 billionths. Your 32 bit value is 4.3b, so basic resolution of that signal is 1/4.3b so say 5V is your full scale voltage. Every count is represented by just more than 1nV. I don't know how you plan to read your 4.3b voltage levels, I suppose a window comparator? so that is 4.3b comparators...Last time I saw a discussion like this someone said that the theory goes that the most efficient number base to use is ouliers number (~2.7), for practical purposes 2 is an excellent compromise.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 18, 2023, 12:21:14 pm
content: Quote from: brucehoult on July 18, 2023, 12:03:05 pmI guess your not giving me a vote of confidence, and that its been done before and failed before.Quote from: brucehoult on July 18, 2023, 12:03:05 pmThat's the easier to concieve ADC with 256 in parallel one per current level, you can actually do it in 8 in series, if u don't just throw it all into parallel, its a bit harder to make tho.If you have some permanent long term values, you need to do it, but this memory which is the main permanent memory, actually seeds off the core array and then thats left just to drift in feedback, so you don't need to put this per core of the machine.Quote from: brucehoult on July 18, 2023, 12:03:05 pmYou don't need to clear it up if you just accept the drift as it goes during the batch compute. But u just need to start from a more permanent memory, but it can just be one, not per core, and the cores just hold temporary state information (the picture) as it computes through.Quote from: Simon on July 18, 2023, 12:18:03 pmI think your probably right about the 2. Not going for super precision just 8 bits.

author: mikerj
author_rank: Super Contributor
timestamp: July 18, 2023, 12:29:28 pm
content: Quote from: robowaffe on July 18, 2023, 09:46:47 amThink about the problems with noise immunity this would cause. Already there are concerns about single event upsets/errors caused by ionising radiation flipping the state of a bit between 0 and 1, now you have the ability to flip up to 8 bits with particles of similar energy. It would need considerable error correction, so you are already eating away at any savings from reducing bus width, plus the logic blocks required process multi-level bits are much more complex. Note that the cheapest flash memory used for bulk storage already stores up to 16 levels (four bits) on each flash cell and this comes with a speed, reliability and endurance cost.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 18, 2023, 12:41:31 pm
content: Quote from: mikerj on July 18, 2023, 12:29:28 pmThere is probably tonnes of issues getting it nano-sized the same as any computer (which i've got no idea about), but if it doesn't get microscopic right from the very beginning the whole idea is you've got 32 times less cores to put down, so the whole thing can be 32 times bigger and ur actually still running 1:1 with the other computer that was more miniaturized!If hes on 10 nanometer technology, you can be 100 nanometer and still almost keep up with him on the core count.<edit>And Im not talking about storage either, The state size for my cores will be under 1k scalar registers only in total.You don't need 32 billion bits to do a compute, even really useful ones.

author: rstofer
author_rank: Super Contributor
timestamp: July 18, 2023, 01:54:24 pm
content: I have always thought of the analog computer as the slide rule of differential equations. Pretty fast but not especially accurate. Remember, during the early years of the 20th century, scientists would race their slide rules against the Friden mechanical calculator - and win!I like the mass-spring-damper problem and I rather enjoy patching it on a ComdynaGP-6. The fun part is seeing the 'form' of the solution rather than worrying about decimal places. Tweak the pots for the variables and watch the results on an oscilloscope.For many problems, an 'about' solution is good enough.One day I'll have to code up the mass-spring-damper on MATLAB without using Simulink (the Simulink solution looks exactly like the setup for an analog computer). A numeric solution could simply be plotted.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 18, 2023, 02:39:55 pm
content: Quote from: rstofer on July 18, 2023, 01:54:24 pmMass spring systems without a form of dampening go out of control and self destruct from all the springs going at once, I'm not sure what the correct way to do it is without ruining the momentum, but I'm a lot better than I use to be at it. My fix is to do with the concept of once uve spun the wizzy dizzy it only goes really fast on the first spin, later spins dont make it faster because you hand cant keep up with it to make it faster, accellerate it more, (so if a spring is pushing it right but its already going right, I push it right less.) Im not sure that is actually correct, but it seemed to fix my one!Makes excellent video games if u get it going.Its hard to dampen them, but if u ever affect your position directly, they work much worse, u have to only affect the velocity to get a more realistic one!

author: radiolistener
author_rank: Super Contributor
timestamp: July 18, 2023, 10:16:31 pm
content: Quote from: robowaffe on July 18, 2023, 08:50:33 am32-bit equals to 32*6.02+1.76 = 194.4 dB dynamic range for analog signal. It's almost impossible to process signals with 195 dB dynamic range in analog circuit. The best modern DAC/ADC working at MHz or sub GHz frequency range have about 13-14 bits ENOB max. So, working with 32 bit ENOB signal in analog domain is impossible with current technology.Usual analog circuit has about 40-90 dB dynamic range, which is equals to 6-14 bits ENOB. But it will be hard to process such signal in analog form. Doing it in digital domain is more fast and reliable way, because it will spread required bandwidth and improve SNR due to using a parallel digital (binary) bus.

author: radiolistener
author_rank: Super Contributor
timestamp: July 18, 2023, 10:26:45 pm
content: Quote from: robowaffe on July 18, 2023, 09:04:25 amHere is your mistake. Analog circuit which can work with so high dynamic range signal will not be the same space. It will require large liquid nitrogen cooling system and will be much more complicated and larger than simple and small digital 32-bit CPU chip.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 18, 2023, 11:38:38 pm
content: So analogue must be done at a lower resistance than digital?I don't think so, your just accepting the halfway states as well as the on and off state, it doesn't take more amperage, I think it's just the same.How would raising the amps (or dropping resistance, or raising volts) make a difference - in falstad it wouldn't matter, it would operate exactly the same just with a higher amp output.Does that FPAA run on more amps than an FPGA? It looked about the same on the surface, it looks all done before there.Raising the amps is to do with increasing clock speed tho, to get larger capacitors to discharge faster, that's what I know.

author: radiolistener
author_rank: Super Contributor
timestamp: July 18, 2023, 11:55:47 pm
content: robowaffethe main issue is not with Amperage/resistance. The main issue with bandwidth, signal-to-noise-ratio, noise, cross interference, near field coupling and other things.

author: brucehoult
author_rank: Super Contributor
timestamp: July 18, 2023, 11:59:08 pm
content: Quote from: radiolistener on July 18, 2023, 10:16:31 pmIt's worse than that because you also have to worry about the linearity.The thing about binary is that you can make every gate inverting (NAND, NOR) and thus cleaning up the signal, and then make the transistors smaller and smaller and worse and worse, and push them to higher and higher speeds until the inverting cleanup at each stage is just barely working (but is). And you just win massively compared to anything with more than two levels on each bit of wire.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 12:06:50 am
content: Quote from: brucehoult on July 18, 2023, 11:59:08 pmlinearity just makes the arithmetic exact, maybe u can actually be non linear and its just another way to be just off, and the compute still mostly makes sense if it were a 3d vector scene, just has a little swim as it goes, but I have a way to make the arithmetic perfectly linear.Quote from: radiolistener on July 18, 2023, 11:55:47 pmWhen its simming in Falstad, all this doesnt even matter until you get to the real world, so I'll leave these problems till later. But I dont see how halfway dipped values would make it any different yet, but I dont know.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 01:02:39 am
content: With a binary computer, if ur bit is getting lossy you can always increase contrast by amping it.With analogue you cant, the only way is to go through an adc and back again.I'm getting over this problem by letting the compute degrade as it goes, but it gets reseeded at the start of each batch of the "drift core" array.But yes, it slowly loses coherence as it goes, so the longer the compute is, the more degradation there was.But it actually computes the value as it goes, so if it drifts, it still maintains the logic of the system (for collisions for example) its just slightly off position from where it would have been.

author: radiogeek381
author_rank: Regular Contributor
timestamp: July 19, 2023, 02:06:00 am
content: Perhaps I misunderstood the OP -- but if the proposal is to build an analog device that serves the function of a RISC processor core...There are fundamental problems with the initial proposition:QuoteThere have been numerous responses, all technically focused and valid.But there are a few that ring out loud:0. It is really really hard for me to imagine an analog arithmetic unit that can do a bitwise OR or bitwise AND. You might be surprised how much of computation is built on those operations. (F'rinstance, the bulk of your "string matching" problem is logical, not arithmetic.) I can't even figure out how one would do a bitwise NOT. If you're suggesting that logic operations would revert to two-level representation, then the adder is irrelevant -- you've now converted lots of parallel 32 bit operations into sequential 1 bit operations.1. 2^32 is a lot of different voltage levels on one wire. It just won't work. If there are any other wires in the world (and there are probably at least two operands for your arithmetic unit) then capacitive coupling between the two must account for one operand at max and the other at min value. Then switch the two values.Unless you intend to take years to transition from the first pair of values to the second, there will be capacitive coupling between the two wires. Digital circuits have all kinds of tricks to fix this, from careful design rules requiring spacing and isolation to careful sizing of drivers. But their problem is simple: they only have to avoid coupling that swings a level more than about 20% of the full voltage swing. Your analog machine can't. It must achieve coupling isolation of one part in 4 billion. That's a lot smaller than one part in 5.If there is any current flowing, it will have to return to the source somewhere. That forms another coupling opportunity between adjacent (or even distant) wires through induction.If the source or destination sink or source any current, the substrate (reference voltage) will wiggle. More than 1 in 2^32. (And it scales with the voltage range. You can't avoid this with a 400V analog voltage range.)2. It isn't smaller. -- why?Even if you *could* build an analog arithmetic unit that was 32 times smaller than a 32 bit digital ALU, it wouldn't matter. A processor (even a RISC processor) is more than an ALU. It executes programs. The programs operate on more than a few data items.You haven't accounted for storage. The size of an ALU is a small part of aggressive high-performance processors, or even economical high-performance processors. Any reasonable computation must have some amount of operand storage. Your example applications are prime examples:* Neural networks? millions (billions) of words* match strings? for interesting problems: thousands of words* raytracing? gigawordsAs some have pointed out, not only must you store the data, you need to access it with addresses. For some of the applications you mentioned, far more than half of all arithmetic operations produce an address. Addresses have to be right.You haven't mentioned the most important thing about a processor: it is programmable and has flow control instructions. In many cases, more than 10% of all instructions are branches. How does the analog widget handle that?Is the instruction stored in analog form too? If so, what does a decoder look like? What does a mux control look like? How does a branch work? How can you be sure that the next instruction is fetched from the right place?How does fetching from a memory with an analog value work?----If the answer to all these is "do the arithmetic in analog and put D/A and A/D converters at each end" then this all boils down to "does the savings in ALU size matter?" And the answer is -- no. Even ignoring the physics, the noise, the other stuff:1. An A/D or D/A converter is MUCH MUCH larger than even the most incompetently designed arithmetic/logic unit.2. A 32 bit A/D D/A is far far far slower than a reasonably designed ALU.----If there is a place for high resolution analog computation, a "processor" isn't it.------------And as to your notion that "CPUS can't do .... quickly". --- compared to what? To an analog scheme? Not likely.------------You sound like a curious person who wants to dig into things. Good. I think you'd find a lot of interesting stuff in "Computer Architecture: A Quantitative Approach" by Hennessy and Patterson. It covers a lot of material that you may not have encountered yet, and the background you'd get from it would make much of what people have said here make more sense.(I taught a course out of that book. But I also was (am) a circuit designer, processor architect, and chief engineer in the microprocessor industry. The problem with a 2^32 level analog computer isn't marketing or stuffy old geezers who don't believe in new things. The problem is the physical reality of how circuits work -- from Ohm's law to inductive coupling to thermal noise. And the logical reality of how algorithms work -- branches, storage hierarchies, logical and arithmetic operations.)

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 02:51:58 am
content: Quote from: radiogeek381 on July 19, 2023, 02:06:00 amyou can do condition with divide, if i have 1/1 i get half, 0/1 i get zero. so i have half the amplitude coming out of the gate, but its done an and computation. 0/1 i get infinitity, but u can probably do two dividers and then take a combination out of the two, there would be a way to fix it. but Im yet to get that simmed and working yet, its just an idea.Quote from: radiogeek381 on July 19, 2023, 02:06:00 amthat would only happen if the memory came in, which could be a delay line, and it was swinging from complete max to complete min constantly. only then would it get that inductive wiggle the most, but on a binary computer its constantly there, so with analogue its actually slightly friendlier because ur not going from complete max to complete min constantly.Quote from: radiogeek381 on July 19, 2023, 02:06:00 amtask for task it is smaller, even professional gpus run faster if u can fit the state of the operation inside the specific core memory without spilling out, so if u were making a gpu yourself, u give the core memory exact catered to what ur going to run with it, so then u don't get any "cache problems" its going to be streamlined exactly for the task your going to run with it. So how small can a state be to run a program? well, it just needs to remember the picture of the shape of the thing ur simulating.If it were to run a pendulum simulator, you just need the position and the velocity of the bob, 1 vertex, that's only 6 scalar registers. position and velocity. and then if u wanted to simulate a complex pendulum, like a robot, you would just need the points of his body, so that would be 20 points, and about 120 scalars. and that's all u store, because it makes it easier to make the computer. and then u just run as many as u can in parallel, and u can run that many parallel versions of the robot at the same time. So u can't tell me a 120 scalar register computer cant compute things! and thats a tenth of a kiloscalar!!! buildable!!!!Quote from: radiogeek381 on July 19, 2023, 02:06:00 amRaytracing requires no memory, if u just use a fractal equation, theres no memory state required 100%, u just have to compute the ray collision using mathematics, and it goes forever into the distance, infinite detail.Neural networks are just a sum of resistors to remember things, they actually dont need a latch or a sample or hold, if u just got the resistors in hard, and just run it on dc, but the tricky thing is, how did u get the resistor values? (you have to train for them.)But matching strings, unfortunately theres no easy way to do it without actually having a memory stick.With a string matcher, u have to limit the amount of strings it knows to make it possible for one guy to build it, but u should be able to put in a parallel access and get the whole lot of codes matched simultaneously, and u don't do it in a gpu fashion, you do a T-CAM instead because it makes a lot more sense because all the travel from the codes to the cores ends up making it dead because u cant get the codes to the core array, so your best off with a parallel memory instead, and the whole thing has to be physical, so at a mm its hard to get more than a meg, or it gets too big, i need to look at it some more.Quote from: radiogeek381 on July 19, 2023, 02:06:00 amOnly need 3 bit addressing on the drift core, with 3 bits, you can direct between the 8 delay lines, one a read, and one a write, and then u can do the rest circular access programming, its a bit trickier and restrictive, but it is possible to fit things in it if u think around the restriction.Quote from: radiogeek381 on July 19, 2023, 02:06:00 amYou don't need to do goto's with programs, u can actually do the whole just start to finish in one direction, without a single jump in the code. but its another restriction for it.Quote from: radiogeek381 on July 19, 2023, 02:06:00 amits just read from which delay line, then go to alu, then write to a delay line.Quote from: radiogeek381 on July 19, 2023, 02:06:00 am1. Ive got plans for one that is just a couple of subtracts, then an AND, and then thats the bit out, and the pass on to the next level for the next bit and theres one per bit in series. I dont see how it could possibly be slow looking at it just ideally, its got to be extremely quick.2. thats actually false, ADCS arent slower than an ALU, an ALU can actually run an ADC, but it sorta doesnt make sense cause its just digital converting to digital again, but u can get the bits out, but they were bits to begin with. digital. if it were an analogue alu, it is an ADC. I dont know why people think they are so slow.Maybe because u guys think ADC conversion is so slow, thats probably why you think the whole thing doesnt work, because that would mean that the ALU is slow as well, cause its very similar to an ADC, that an ADC can be just a analogue ALU itself. but on the flip-side, thats why I think it works!Quote from: radiogeek381 on July 19, 2023, 02:06:00 amThis computer I'm making is not general purpose, its complete custom designed to just run 3d soft body dynamics of n linked vertices. (Makes jelly robots.) So dont think "general purpose" when ur thinking about this core, its not to run windows on.All the computers u were designing were to interface with windows, peripherals a full 32 big ram stick, this computer isn't like that.So if the proof of concept, is how fast u can get an ADC, which is the same as analogue ALU, it potentially goes as fast as the fastest ADC on the market. so what is that???I just looked it up, the fastest ADC goes 10 gigasamples.https://www.electronicproducts.com/ti-rolls-fastest-12-bit-adc/But guess what... after reading that.... I plan on going 100 gigahertz with it.

author: golden_labels
author_rank: Super Contributor
timestamp: July 19, 2023, 03:36:26 am
content: The idea of general purpose analog computers have been abandoned a long time ago for reasons mentioned above. They are also hard to program, prone to errors and — if expected to match performance of modern digital units — require absurd manufacturing tolerances.There is a renewedinterest with analog computationfor specific classes of problems. This is due to digital computers being both particularly badly suited for smortnet workloads(1)and greatly overpowered for this kind of task.(2)Some types of analog devices fit the model much better.But this is still useful for a relatively wide class of algorithms. Coupled with existing downsides, which cause substantial financial and practical barriers, smortnets provide sufficient incentive to invest in that kind of a solution. The uses you provided do not share this property. Technical issues aside, it’s simply not financially viable.(1)Digital circuits love good locality of references and FIFO processing. Artificial neural networks the exact opposite of this: they exhibit the worst referential locality of commonly encountered computing problems and have queue depth of approximately 1. Parallelling units, as in GPU, is only offsetting the problem, not removing it.(2)Modern large models are requiring very limited resolution and use only a few instructions. So most of the processing unit capabilities remain unused.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 03:41:07 am
content: Quote from: golden_labels on July 19, 2023, 03:36:26 amIf ADCS go 10 gigasamples a second, then that means analogue computers follow suit with the ADC speed.So you drift without resetting ur signal with an ADC, but theres no speed penalty for analogue computers, u can fit 8 bits on a single wire fine, with 0.05% tolerance or something.

author: MrAl
author_rank: Super Contributor
timestamp: July 19, 2023, 03:44:54 am
content: Hello,It's interesting that all of us here are probably using a form of analog computer technology right here and now. It's not very high level though in the form of Flash Memory.Flash Memory has moved from single level to multi-level and that means each bit line can handle more than just binary data. Instead of just a 1 or 0 we can get several levels which represents more than just one single binary bit.There are some problems though that are speed related. One company i had read about is going to make very, very, very large SSD's where the read speed is reasonably high, but the write speed will be fairly slow. They are banking on the individuals that do incremental backups where there is a small amount of data to be backed up but when it comes time to read it will be fast enough.The problem I see there is when you want to backup the backup, which is a normal thing to do when you have very critical data to think about. How long will it take to backup your entire 50TB SSD then. I hate to think about it.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 03:46:35 am
content: Quote from: MrAl on July 19, 2023, 03:44:54 amThat doesn't make sense to me, how can we have 10 gigasample adcs and analogue flash not go 10 gigasamples?

author: Berni
author_rank: Super Contributor
timestamp: July 19, 2023, 05:44:42 am
content: Quote from: robowaffe on July 19, 2023, 03:41:07 amHave you ever seen a 10 GS/s ADC running? The things are huge complex chips with lots of supply rails, they have a buffer feeding it a nice low impedance signal, they run hot despite having a heatsink since they consume a ton of power. All that just to convert 1 analog channel and even that at barely 8 bit ENOB for the nice ones. You would need many many many more to build a analog computer.Internally these fast ADCs aren't actually 1 ADC, they are actually tens or hundreds or even thousands of tiny ADCs running in parallel along with a tree of very precise sample and hold circuits to take snapshots of a fast signal and feed it to the slow ADCs one sample at a time. This also introduces a lot of latency so it would be pretty useless when using as a analog computer to digital memory bridge.Go ahead and try to design some of the components you would need for a analog computer. What would your design for a bitwise XOR in the ALU look like? How would you build a instruction decoder using analog only? How would you switch between executing different kinds of instructions without having a digital signal that switches appropriate parts of the ALU into the circuit, same for how to MUX in the correct CPU register from the say 32 registers available that you want to read.Also avoiding cache by "just having enough internal memory" is not a magical solution. Memory gets slower and higher latency as it gets bigger. This is the reason why modern CPUs have a L1 L2 L3 cache. Only the L1 is truly fast cache but it is tiny, because if it was big it would not be fast anymore.EDIT: My point is that having a programmable analog computer makes it way too complex to be practical. The analog computers that were built and actually used in the real world so far are all fixed purpose computers that are hard wired for doing a certain task, like keeping a Saturn rocket pointed in the right direction, managing the speed of a conveyor belt in a factory, or calculating how to drop a bomb from a plane to hit a target.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 05:57:20 am
content: Quote from: Berni on July 19, 2023, 05:44:42 amWell get a high end 10 gigasample a second oscilloscope, and thats what under the hood of it, however ginormous it is, and high spec goodness, and impossible to make for the average man.Quote from: Berni on July 19, 2023, 05:44:42 amSo when u have a 100 gigahert signal going into an oscilloscope, it actually comes out with a short delay, and this must be the latency ur talking about, this could still be no problem for the analogue computer, cause it just works under the latency, just needs to be another delay to the delay line, but as long as its pipelining at the sample rate, it should work fine. all computers work under some delay of arrival of output, virtually this happens to all gpu's anyway today. (just a little bit.)And its analogue memory, not digital memory, the ADC is just undrifting the signal.Quote from: Berni on July 19, 2023, 05:44:42 amAn analogue version of xor is just subtract, just it ends up with opposite polarity outputs. to get real xor its just getting the absolute of this.1-1=01-0=10-1=-10-0=0(two polarity xor.)And u could just use that for everything you said.Quote from: Berni on July 19, 2023, 05:44:42 amHere ur just contradicting yourself, I said im using a small amount of specific core memory, and u just told me its faster being smaller. So yes, it will be quite fast, cause its small.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 06:21:00 am
content: Theres nothing wrong with a nonreprogrammable computer!!! thats the whole idea!you strip off all the consumer crap off it and its a super machine for a scientist to use. super high performance.But it is actually programmable, the one im doing, you just send the instructions in through a delay line with the rest of it, and all the cores use the same instructions so they all use the same wires in. (Which is very important, or you couldn't really even handle how many wires it is if it were individual per core.)

author: Berni
author_rank: Super Contributor
timestamp: July 19, 2023, 06:27:24 am
content: Quote from: robowaffe on July 19, 2023, 05:57:20 amNo the result of 1 0 and 0 1 should both be 1 for a XOR.But the thing is CPUs always have bitwise instructions that work on a whole byte/word at a time.So it can compute:0x33 XOR 0x0F = 0x3CWhen you do that in analog it would be:51mV XOR 15mV = 60mVThese calculations don't really make sense in the analog sense, but are still used a lot in all sorts of fast algorithms.What kind of circuit does this computation?Quote from: robowaffe on July 19, 2023, 05:57:20 amYes, but notice that real world high performance computers don't only have L1 cache as all the memory.They have L2 L3 and RAM (Sometimes even L4 in there). That is because to run the tasks we need computers to run we need MUCH more memory than we can fit close to the CPU core. So you do need a way to access large amounts of memory quickly for it to be usable as a modern computer.For simple small tasks that don't need much memory, i can already run on my GPU at insane speeds. So no use in getting an analog computer for a task that my regular digital computer can already do very very fast.

author: Berni
author_rank: Super Contributor
timestamp: July 19, 2023, 06:43:02 am
content: Quote from: robowaffe on July 19, 2023, 06:21:00 amAnd who would want to rewire there computer in order to run a different program? How would you even rewire one? It is not practical to have tiny connectors and jumper wires that you plug into them. That also wouldn't work at GHz speeds.If the connections are made on the chip die, then you need to design and manufacture a new ASIC for every task you want your computer to do. For large chips this costs multiple milions of dollars just to make the lithography masks.We already have single purpose computers built for tasks in high demand. Like for example there are bitcoin mining ASICs that are essentially just single purpose digital computers that are built to do that one task. This makes them insanely fast, orders of maginute faster than even a GPU.Single purpose digital computers can already be super fast, but they are not practical because they cost SO much to build that the task has to be really really high in demand. Not practical for scientific use. They can instead just run there experiments on a huge super computer. it costs a lot but you can modify your program anytime and rerun it. No need to throw the entire super computer in the trash and build a new one because you needed to change something in your calculation.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 06:58:11 am
content: Quote from: Berni on July 19, 2023, 06:43:02 amI guess people that dont use FPGA'sQuote from: Berni on July 19, 2023, 06:43:02 amIs that because the "photo film" just costs multiple millions of dollars just for one sheet?Quote from: Berni on July 19, 2023, 06:43:02 amYeh but if u can make a gpu, u can probably make one of those using the exact same technique.Quote from: Berni on July 19, 2023, 06:43:02 amIf ur building it for yourself the demand is met easily.how does it cost so much to build one, is it cause transistors cost more than a $1? even if u had a thousand transistors, it would only cost $1000 to make it. but I guess that might only give u one core.But of course, ur not buying transistors to make it, ur making them yourself! then its alot cheaper to put down 100,000 of them for a larger array!I think the thing that is a little hard to take, is that analogue oscilloscopes go just as fast as digital ones, and people cant take it because they arent given to the public, and people end up with a psychological flaw about it, because they havent got the guts to realize the truth.The fact that ADCS, the frontend of an oscilloscope goes 100 ghz, means that u pretty much dont even need it, if u just go to an analogue memory instead it just does the same thing!!! your just doing the same thing with an analogue memory instead of a digital one!!!So thats where the stuff up in people's heads is.And it can remember terrahert signals, not just 100 gigahert, cause it doesnt even HAVE an oscillator.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 07:09:03 am
content: visualizing terrahert signal.https://www.nature.com/articles/s41467-021-27256-xMaybe if u pitch shift the signal from a terrahert to a megahert it does work to visualize on average analogue scope.

author: gnuarm
author_rank: Super Contributor
timestamp: July 19, 2023, 07:19:54 am
content: Analog computers do not work remotely like digital, so there's no reason to think they would run faster, or be smaller.This is very unlikely to be anything remotely like a good idea.If you have an idea on how to implement an analog CPU, you can try simulating some of it in LTspice. That should convince you pretty quickly that it won't work.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 07:36:14 am
content: It should be easier to work in LTSPICE than real life, because there's no parasitic problems.But I'm through with this thread, I cant be bothered anymore, I don't think anyone else can either, u guys just believe what u want to believe.

author: golden_labels
author_rank: Super Contributor
timestamp: July 19, 2023, 07:38:43 am
content: robotwaffe: do you actually read and attempt to understand, what people are trying to explain to you? Or are you just trying hard to reject any information not fitting your “greatest idea ever”? Whileresponding to me, you failed to refer to anything I wrote. Do you even care about the answers?This idea is neither yours, nor new. It predates digital computing by decades and was being analyzed since then. There is more finest expert thought in this branch already than you could ever donate, even if you spent every second of your entire remaining life on doing nothing else than researching analog computing. At this point this is not a matter of opinions and arguments, but knowledge. People here are passing it to you and summing up the current situation.

author: gnuarm
author_rank: Super Contributor
timestamp: July 19, 2023, 07:45:17 am
content: Quote from: robowaffe on July 19, 2023, 06:21:00 amOne thing you fail to understand is that you think you can make the entire computer run at 10 G calculations per second. Do you have any experience with these speeds? I expect you will find it is not easy to get something like this to work at MHz, much less GHz. That was the big reason digital took over, well, that and the much higher accuracy.How would this be better than a digital computer? They run well, are readily available, cheap and easy to use. What needs to be fixed???

author: gnuarm
author_rank: Super Contributor
timestamp: July 19, 2023, 07:48:10 am
content: Quote from: robowaffe on July 19, 2023, 07:36:14 amDon't get mad. Use LTspice to show us we are wrong.

author: gnuarm
author_rank: Super Contributor
timestamp: July 19, 2023, 07:51:31 am
content: Quote from: golden_labels on July 19, 2023, 07:38:43 amThey used to do all manner of signal processing on radar signals in analog, because of the high frequencies. Then the ADCs got fast enough to sample them without down converting first and it opened up a whole new world of processing capabilities. Analog processing is hard.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 07:55:38 am
content: heres my capacitor amp.

author: tggzzz
author_rank: Super Contributor
timestamp: July 19, 2023, 08:53:20 am
content: Quote from: robowaffe on July 19, 2023, 07:55:38 amWhat is that fairground ride supposed to be showing us?

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 08:56:29 am
content: That I am somewhat qualified to make this computer.the left scope is the input amps, the right scope is the output amps.If I can amp, I probably can get the whole thing to work, at least in simulation.

author: tggzzz
author_rank: Super Contributor
timestamp: July 19, 2023, 12:14:48 pm
content: Quote from: robowaffe on July 19, 2023, 08:56:29 amYou'll need a lot more before than that before your simulation is plausible.Use a decent simulator, not a toy. LTSpice or MicroCap are fine.At the minimum insert appropriate noise sources and bandwidths.Do the calculation:what is the bandwidth of your amplifiers etcwhat is the noise generated in an ideal resistorwhat is the noise generated in your amplifierwhat is the maximum voltage output of one of your amplifierswhat is the voltage corrresponding to 1 LSBcompare that with the noise of the resistor and amplifierThen move onto the imperfections in amplifiers, e.g. CMRR, input offset voltages and currents.Compare those with 1 LSB.Overall it sounds like you are at the stage where you wouldgreatlybenefit from reading TAoE and Henry Ott's books.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 12:21:43 pm
content: Isn't the output voltage of a transistor just whatever power you connect through the collector to the emitter - and u just open the switch with a little current?

author: Berni
author_rank: Super Contributor
timestamp: July 19, 2023, 02:55:26 pm
content: Quote from: robowaffe on July 19, 2023, 08:56:29 amThat just looks like a diode based charge pump buried among a mess of signal generators.Quote from: robowaffe on July 19, 2023, 12:21:43 pmIf only it was that simple.Transistors also have a saturation region, leakage, gain that varies with the current flowing trough it, it also varies with temperature a lot, there is a lot of manufacturing variability from transistor to transistor.Go ahead and try to build a circuit that multiplies two input voltages ranging from -10V to +10V into a result as voltage and make it accurate enough to be within 8 bits of resolution. Even doing it in simulation will get pretty complicated. If you do get that far then try to actually build it with real transistors and see how well it performs (it will likely be very unstable and inaccurate)

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 03:06:34 pm
content: Instead of multiplying, you can do the mathematical inverse, and then u just need a voltage divider and they are a mathematically perfect output between 2 different operands, and then its just a matter of amping the result afterwards to make the number correct.so if u need *3.go divide by 3, then times it by 10 on the single operand output. then that might be easier.and that works for all numbers 0 - 10, for operand b.Thank god the guys making ADC's can actually get that little input op-amp to register the voltage correctly or no-ones digital oscilloscopes would even work.

author: tggzzz
author_rank: Super Contributor
timestamp: July 19, 2023, 03:36:25 pm
content: Quote from: robowaffe on July 19, 2023, 12:21:43 pmThat's word salad.I'm beginning to wonder whether "robowaffe" => robot waffle or robot arms/weapon. I'm more than happy for it to bedemonstratedthat I'm wrong.

author: robowaffe
author_rank: Regular Contributor
timestamp: July 19, 2023, 03:37:28 pm
content: robot waffle will do. sounds like im going to ice cream parlour.

author: gnuarm
author_rank: Super Contributor
timestamp: July 19, 2023, 03:40:02 pm
content: Quote from: robowaffe on July 19, 2023, 03:06:34 pmI think it is time to stop talking about it and for you to show us that you can do this. Please!

author: tggzzz
author_rank: Super Contributor
timestamp: July 19, 2023, 03:44:25 pm
content: Quote from: robowaffe on July 19, 2023, 03:37:28 pmI hope you have managed to get off successfully.

author: wasedadoc
author_rank: Super Contributor
timestamp: July 19, 2023, 03:56:01 pm
content: Quote from: robowaffe on July 19, 2023, 03:06:34 pmMore than 10% error introduced immediately there, even before getting to the stage of building it.

author: John B
author_rank: Frequent Contributor
timestamp: July 19, 2023, 09:38:44 pm
content: Quote from: robowaffe on July 19, 2023, 07:55:38 amAs soon as I saw the disjointed mess of wires, I immediately thought "huh, this guy seems familiar".So, welcome back to the forum I guess.Just so we are all clear, this isn't an engineering discussion, but rather a therapy session.

author: John B
author_rank: Frequent Contributor
timestamp: July 19, 2023, 09:45:40 pm
content: And I don't mean it in a snarky way, there's obviously a strong sense of reaching out for social interaction here.

author: tggzzz
author_rank: Super Contributor
timestamp: July 19, 2023, 10:41:12 pm
content: Quote from: John B on July 19, 2023, 09:45:40 pmSocial interaction, fine.Deceptive, time wasting interaction - not so much.I note another of his topics cannot be replied to:https://www.eevblog.com/forum/beginners/rusting-diodes-on-your-pcb/msg4969606/#msg4969606Not surprising when his OP is, in its entireity: "you reckon if you get a pcb from pcb way you can put a vinegar mask on it, and rust diodes on it, to get copper hydroxide diodes, but u have to press two boards together to get the anode and the kathode to connect."The first reply seems accurate

author: MrAl
author_rank: Super Contributor
timestamp: July 20, 2023, 05:57:10 am
content: Quote from: robowaffe on July 19, 2023, 03:46:35 amHi,Most likely cost factors. Trying to keep prices for very large (40TB) SSD's down so they can sell them.