Multiple Processor Systems - Computerphile

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 พ.ย. 2024

ความคิดเห็น • 250

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 6 ปีที่แล้ว +19

    6:57 There is another technique, called “pipelining”. Or, in industrial terms, you set up an “assembly line”, where one person just butters the bread, and passes the slices onto the next person to put in the cheese and slap them together.
    Modern CPUs use this technique as well as multiple processors. And then there’s also caching.

  • @xeridea
    @xeridea 3 ปีที่แล้ว +4

    About the "power wall". Intel chased this with the Pentium 4, assuming GHz would go up forever, and at the time Gigahertz was marketing. The issue is, power consumption is roughly a function of frequency times voltage squared. As frequency increases, more voltage is required to keep it stable, but since this causes power usage to scale exponentially, it is a problem. Also, as frequency increases, the voltage required starts to runaway. So there is a balance of frequency that is optimal for different CPUs. Generally the limit is around 3.5GHz where it starts to runaway, making the transistors flip on/off faster becomes increasingly difficult. So, it is much more efficient to run multiple cores at a lower frequency, than to try to chase Gigahertz.
    As transistors get smaller, you can increase complexity to increase instructions per clock, raise frequency, or both, but frequency is always a balance for power consumption. Modern CPUs may boost to 4.5Ghz or so, but not much frequency has been gained in 20 years. More effort goes into increasing Instructions per clock, aka IPC, multiple cores, cache, branch prediction, SIMD, etc. Laptops are far more efficient, running perhaps 3/4 frequency can easily cut power usage in half, or even lower, due to the exponential nature of voltage and power consumption. And any reasonably modern CPU automatically varies its frequency based on load to reduce power, so idle cores may run at say 1 GHz instead of full 3.5-4GHz max all the time, and partially used cores somewhere in the middle.
    There is much more that goes into CPUs, like pipelining, and branch prediction, which have their own tradeoffs and balances.

  • @kemfic
    @kemfic 6 ปีที่แล้ว +85

    5:34
    damn he's not pulling any punches here

    • @StankyPickle1
      @StankyPickle1 6 ปีที่แล้ว +8

      Loved his little jab, lol!

    • @fllthdcrb
      @fllthdcrb 6 ปีที่แล้ว +23

      You'll probably lose money mining Bitcoin on a GPU. Even if you have free electricity and Internet, it's just not competitive with ASICs, by a long shot. If you want to mine on a GPU, pick some other coin.

    • @theblackwidower
      @theblackwidower 6 ปีที่แล้ว +5

      @@fllthdcrb I'm pretty sure all cryptocurrency is a bubble. And given how much of an arms race it is the issue only gets worse. I wonder how much of Global Warming can be directly blamed on Bitcoin miners.

    • @h3xd3m0n9
      @h3xd3m0n9 5 ปีที่แล้ว +3

      It no more a bubble a dollar is that can be printed at free will since it's not backed by anything tangible

  • @todayonthebench
    @todayonthebench 6 ปีที่แล้ว +15

    In essence a modern computer is a parallel environment, typically both symmetrical and asymmetrical at once.
    Since the CPU is typically having more then 1 core, and it offloads tasks to the GPU that as well typically has more then one core (sometimes even having different types of cores for different tasks, so the GPU can be asymmetrical as well!). Not to mention the fact that there also is many other processors in a modern system. Since HDDs and SSDs have memory controllers in them, even network cards at times have an on board processor.

  • @jecelassumpcaojr890
    @jecelassumpcaojr890 6 ปีที่แล้ว +21

    Some people separate "multi processor" which share the same memory from "multi computer" where each processor has its own memory and use some network technology to exchange data with the others. An example of a multi computer would be any system built with the Inmos Transputer, which should be mentioned in any talk about parallel processing (specially in the UK).

    • @sighko
      @sighko 6 ปีที่แล้ว +1

      Doesn't it at that point become relevant to start defining the grade of parallelism?

    • @JohnnyThousand605
      @JohnnyThousand605 6 ปีที่แล้ว +2

      I'm waiting patiently for Computerfile to do an episode on transputers. Apparently, and forgive me if this is completely wrong, chip manufacturers had hit what they thought was the hard limit for transistor size in the mid-eighties and transputers were seen as a way around that. I'd love watch a 'historical' episode on that. :-)

    • @jecelassumpcaojr890
      @jecelassumpcaojr890 6 ปีที่แล้ว +2

      My impression is the opposite: Inmos expected transistors and chips to become cheaper and cheaper so at some point in the future a whole processor would be the basic component and a system would have a very large number of them. You certainly wouldn't build a consumer product with 30 Transputers at 1980s prices.

    • @JohnnyThousand605
      @JohnnyThousand605 6 ปีที่แล้ว +1

      @@jecelassumpcaojr890 fair enough :-)

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 6 ปีที่แล้ว +3

      “Multi computer” would imply entirely separate physical boxes connected by cables. These might be regular LAN interconnects, but custom high-speed ones are also used (e.g. Fibre Channel, I think).
      One also talks about “tightly coupled” versus “loosely coupled” multiprocessor machines. Typically “loosely coupled” ones don’t share RAM, so they communicate by sending messages over communication channels of some sort. “Tightly coupled” ones share (almost) their entire RAM space, so they can communicate just by reading and writing shared memory.
      A small step back from full tight coupling would be NUMA (“Non-Uniform Memory Access”), where each processor has some local memory, and can also access memory belonging to other processors, but the latter accesses are slower. So this logically appears just like tight coupling, and is almost as easy to program.

  • @JW-uC
    @JW-uC 6 ปีที่แล้ว +13

    I remember the "transputer" and occam (which in combination allowed parallelism) being "the next big thing" and if I remember correctly it was available as a side computer (add on, like the second 6502 shown in the vid) for either the BBC Micro or one of the next gens Beebs such as the Archimedes. I saw one doing some amazing real time graphics at a computer fair in london as a kid and was stunned at how much more powerful it was compared to the BBC which even in the day had some stunning graphics and games for what we'd now consider a hugely underpowered processor.

  • @mentatphilosopher
    @mentatphilosopher 5 ปีที่แล้ว +4

    The Space Shuttle used a 5 processor system that then "voted" on the correct answer. There was a Communications of the ACM article on it.

  • @jmtikka
    @jmtikka 6 ปีที่แล้ว +13

    What a beautiful HP Z800 (?) dual Xeon system at the start. I have a couple of those under my desk at home. Bought them a couple of years ago (used of course).

  • @TomasSab3D
    @TomasSab3D 4 ปีที่แล้ว +8

    nother reason for multiple processors is dedicated task performance. Some tasks are timing sensitive. You want the frames to be coming constant - not pausing every time you click a button. And so, you can have dedicated processor for sound, video and other time critical operations (moving a motor without interrupts for example).

    • @thewhitefalcon8539
      @thewhitefalcon8539 ปีที่แล้ว

      Such tasks don't necessarily require a CPU - every console has a graphics processor but we don't call it a second processor if all it does is spew frame data to the TV.

    • @TomasSab3D
      @TomasSab3D ปีที่แล้ว

      @@thewhitefalcon8539 yeah. I was meaning things like custom PWM for motor in PID... when you change the position - it needs to process the incoming message. So, a single core processor will disturb the PWM pulse... sure, can cover up by including the processing time into the pulse width but there's a thing...
      Also things like OS interupts can disturb, and so forth. don't wnat to interfere with my PWM each time a mouse moves or clicks.
      Obviously, if you deal with a massive data stored on a hard drive that merely needs to be "flushed through" for pixels, a GPU can do magic there, fully independently. Just specify the start of the data series and the end and it will just "chunk it" in a mass parallel FPS... not even causing memmory conflicts... so to say... in a hevily over simplified way.

    • @thewhitefalcon8539
      @thewhitefalcon8539 ปีที่แล้ว

      @@TomasSab3D PWM is normally handled by a PWM controller chip which is fairly simple and does not count as a processor.

  • @darkwinter6028
    @darkwinter6028 6 ปีที่แล้ว +8

    All Macs with ADB are multiprocessor - including that LC. There’s a small 8-bit processor that manages the low-level aspects of the ADB ports.

    • @TheyRiseBand
      @TheyRiseBand 5 ปีที่แล้ว +1

      And it might have an Apple IIe card installed.

  • @TheTurnipKing
    @TheTurnipKing 6 ปีที่แล้ว +6

    It's actually more common than you'd think really, and how leniently you want to judge a processor. Many video subsystems were implemented in a way that made them essentially dedicated processors. The SNES, rather famously has a Sony produced sound processor subsystem And another obvious one is the Megadrive, which has both a 68000 and a z80.

  • @alexwilli
    @alexwilli 6 ปีที่แล้ว +13

    One great use for multiple processor systems is in "Monte Carlo" statistical simulations. I just completed a pet project this year of a tool that simulates all of the possible outcomes of our fantasy football league to determine likelihood of each team making the playoffs.
    Even starting at week 7 (of a 13 week season), and just considering wins and losses (not ties), that meant my program had to consider over 4 _trillion_ possibilities. With fairly optimized code on an 8 core system this took just over 24 hours. The original, single threaded (single processor) version written in VBA would have taken close to 130+ _days_ to complete the same task.
    I'll put a video to the result in a follow-up comment for anyone who is interested.

    • @pal_clips
      @pal_clips 6 ปีที่แล้ว +1

      Please do!

    • @skepticmoderate5790
      @skepticmoderate5790 6 ปีที่แล้ว +1

      That's really cool. Looking forward to the video!

    • @heephstan
      @heephstan 6 ปีที่แล้ว +3

      Can't you write this to use CUDA or AMD's compute solution? If it's so paralisable?

  • @RabiefromSudan
    @RabiefromSudan 6 ปีที่แล้ว

    I'm actually crying out of joy from watching this video and reading the comments afterwards.

  • @Luredreier
    @Luredreier 6 ปีที่แล้ว +14

    Thanks for using the term "SMT" this time. =)

  • @Latrocinium086
    @Latrocinium086 6 ปีที่แล้ว +4

    Like to see a vid about the hidden os on all the current multi cores, maybe some consideration to hidden opcodes too. Thanks. Love the content

  • @RichardEricCollins
    @RichardEricCollins 6 ปีที่แล้ว +13

    The CPU in the PS2 was a MISD when you put VU0 into micro mode. You pair two instructions pr. clock cycle, upper and lower instruction running from one data stream.

    • @peterjohnson9438
      @peterjohnson9438 6 ปีที่แล้ว +2

      ...but why?

    • @jc_dogen
      @jc_dogen 5 ปีที่แล้ว +2

      @@peterjohnson9438 It was a VLIW processor. It actually had 2 of them, in addition to the main CPU.

    • @peterjohnson9438
      @peterjohnson9438 5 ปีที่แล้ว +2

      @@jc_dogen ah, that makes more sense :)
      VLIW architectures were being experimented with a lot at the time, although I only ever read about them in passing. Now I feel like diving deeper into the tech that went into the PS2. I always thought VLIW was relegated to some niche subtask of supercomputing.

    • @jc_dogen
      @jc_dogen 5 ปีที่แล้ว +4

      @@peterjohnson9438 ATI used a VLIW architecture in their GPUs for years too

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 6 ปีที่แล้ว +2

    10:35 Another kind of SIMD was introduced back in in the 1970s with the Cray machines. These had instructions which could act, element-by-element, on arrays of up to 64 elements with a single invocation.
    However, the operations were not performed simultaneously on every element, but were pipelined so that, after the initial instruction setup, the result elements would be churned out in succession very quickly.
    Contrast this with PowerPC Altivec (which I think predates Intel’s initially rubbish MMX), where operations are performed on all elements of the operand vector simultaneously. Note also that these vectors tend to be shorter than the Cray ones: a maximum of 4 elements (maybe 8 for small integers) is typical.

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 6 ปีที่แล้ว +1

      @Michael Hansen I think the earlier ILLIAC IV research machine was also SIMD, with four processors executing the same instruction set on four data streams. Seymour Cray looked at the difficulty of programming that before creating his architecture for the Cray-1.

  • @sighko
    @sighko 6 ปีที่แล้ว +19

    This video would have been very useful when I was studying for my Operating Systems module.

  • @chouatsushi7625
    @chouatsushi7625 ปีที่แล้ว

    Wow I have the same model computers as you showed in the video which have two Intel processors. I felt pretty satisfied.

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 6 ปีที่แล้ว +1

    8:16 Case in point: the Atari Falcon had a Motorola 56001 DSP, because in those days general-purpose CPUs were not fast enough to do processing of CD-quality sound data in real time. Nowadays we don’t see DSPs much in regular PCs (except maybe embedded inside a controller for some peripheral). But new, more compute-intensive tasks have become popular, which is why we now have programmable GPUs, for example.
    Will the wheel turn again? Yes, I think it is possible.

  • @hrnekbezucha
    @hrnekbezucha 6 ปีที่แล้ว +2

    Love these high level explanations.

  • @VoteScientist
    @VoteScientist 6 ปีที่แล้ว +2

    Also IBM 360 model 67-2 announced August 1965 two complete model 67s sharing common memory.

  • @39Kohm
    @39Kohm 6 ปีที่แล้ว

    It is somewhat trivial to attach more processors to a system, but like what Dr.Bagley said, it's dividing up tasks so that you are utilising them in an efficient and useful way that is the tricky part. It's something I've been fascinated with since the mid 80's.

  • @amywyvern3924
    @amywyvern3924 6 ปีที่แล้ว +10

    The Commodore 128 computer has 2 main CPUs, a Z80 and a 6510 (or 6502?) in it, but unsure if it counts as a multiprocessor since it seems to run only one CPU at a time. Also, the Commodore disk drives are built like computers with a processor. Some do mention 16bits and 32bits Sega consoles which yes they have multiple CPUs inside like one usually kept for sounds, one for graphics (not yet a GPU back then), etc.

    • @johnfrancisdoe1563
      @johnfrancisdoe1563 6 ปีที่แล้ว

      Amy Wyvern IBM PC (1981) had two CPUs: A 16 bit 8088 with an 8 bit front side bus and an 8 bit 8051 microcontroller in the keyboard.

    • @mOczakowski
      @mOczakowski 6 ปีที่แล้ว +1

      butone of the cpus (on both systems) were used to process audio, both of these are Asymmetric or custom hardware for specific tasks, genesis and arcade boards is a perfect example, they used multiple cheap off shelf components rather than designing a more complicated multi core on single die (very expensive at the time), IBM main frames used the later.

    • @El_Grincho
      @El_Grincho 6 ปีที่แล้ว +1

      Add four 1571 and you'll have a six core system.

    • @KuraIthys
      @KuraIthys 6 ปีที่แล้ว +1

      And a SNES had two CPU's already but relatively frequently ended up with a third in the cartridge.
      Actually, the programming reference for the SA-1 specifically mentions how it's presence forms a multi-processor system, and how you could handle it as an 'accelerator' or a true multi-processor system, or some mixture of the two depending on how much complexity you were willing to accept.
      it's pretty weird when you think about it...
      Then the n64 has a GPU that technically owes a large chunk of it's functionality to containing a second CPU core with the same instruction set as the main CPU - yet you wouldn't typically be inclined to think of this as a multi-CPU system either.
      Really quite odd when you think about it.

    • @klaxoncow
      @klaxoncow 6 ปีที่แล้ว +2

      Commodore were always an exception because they owned MOS technology and, thus, manufactured their own custom chips.
      So, for example, the C64 had the SID "Sound Interface Device" sound chip and VIC-II "Video Interface Controller" graphics chips (the VIC-I was in the VIC-20, after which the computer was even named).
      (But I guess, on a technicality, in terms of this video, it wouldn't count as a genuine "multi-processor" system, as these chips did not accept instruction streams. You programmed them by changing hardware registers memory mapped into CPU-accessible RAM and the VIC shared memory with the CPU for the video framebuffer.
      Not that the video went into such a fine detail, but from the way Dr.Bagley was classifying his collection of machines - and how he considered the Amiga an "arguable" multi-processor machine - and the discussion of "SISD / SIMD / MISD / MIMD" then we're not fully counting chips that don't take their own instruction streams here.
      So by the same argument as the Amiga, the C64 and VIC-20 were "arguable" multi-processors. Down that way headed, with custom chipsets for specific purposes of graphics and sound, but not fully there to qualify as proper "co-processors", as these custom chips did not have their own instruction streams and were very much peripheral slaves to the CPU, which actually did all the true "processing" work.)
      And, yes, the C128 - though it had two fully-fledged processors on-board - only enabled one of them at a time, so it wouldn't really count as "multi-processing", in terms of there not being any true parallel operations going on at the same time. The system was "multi-processor" but did not do "multi-processing". Subtle but important distinction.
      And also Commodore did just simply have another 6502 with a small amount of RAM, inside their 1581 disk drives. Because of this, it was actually possible for the CPU to "upload" new software to the disk drive and execute it.
      There are many C64 demos that actually do this, uploading their own routines to the disk drive to more finely control the disk loading and, thus, could format the data on the disk however they liked - straying from the standard disk format, save the main index, as you did still need to start the loading process to get their code into RAM in the first place - and could utilise tricks for quick loading.
      It was even conceivable that you could upload a routine to the disk drive to have it not only load data from disk, but do some decompression as well - though this was limited by the drive not having much RAM and only a 1MHz 6502, so you couldn't do a massive amount with it.
      But, yes, the disk drives were their own 6502-powered computers unto themselves. Though, again, we'd have to check definitions here, as these were separate and independent physical units, so this arrangement would count more as "networking" between two machines, I would think.

  • @paleghost
    @paleghost 6 ปีที่แล้ว +1

    In the early 90s we had a Sequent S2000 4 processor (Intel 486 25 mhz) SMP machine running a BSD UNIX version. Supposedly it scaled to 32 processors.

  • @nO_d3N1AL
    @nO_d3N1AL 6 ปีที่แล้ว +31

    I'd love to watch Steve reacting to some crazy setup on LinusTechTips

  • @robf93
    @robf93 6 ปีที่แล้ว +2

    Two instruction paths. One for computation, the other for control flow.

  • @soerenkoehler
    @soerenkoehler 6 ปีที่แล้ว

    Just nitpicking: If you count the keyboard CPU of the Atari ST(E) you have to also count it for the Falcon, since all members of the ST/STE/TT/Falcon-family use the intelligent keyboard desing with the 65xx (or 68xx?) keyboard processor. So, Falcon has 3 CPUs: 68030, 56001, Keyboard.

  • @drawapretzel6003
    @drawapretzel6003 6 ปีที่แล้ว +5

    See thats the interesting thing, what is the minimum processing power required to count as a "processor" ? because most computers nowadays have more than one processor, the other processor is just processing dedicated things instead of anything. Multiple other processors actually. ADC, DAC, etc etc.

    • @sundhaug92
      @sundhaug92 6 ปีที่แล้ว

      ADCs and DACs are not processors, though they can be coupled with DSPs (which are processors)

    • @kc9scott
      @kc9scott 6 ปีที่แล้ว +2

      In my opinion, it's the ability to independently execute a sequence of instructions stored in some sort of memory. The keyboards that Steve mentioned as having their own internal processors count, if they use a general-purpose processor rather than a hardware keyboard scanner chip. However, in computers from the '70s and early '80s, I think it's more likely for keyboard electronics to be of the latter type. As far as I know, any USB interface will have its own dedicated processor to handle the lowest layer(s) of USB protocols. Modern GPUs count, since you can program them to do things other than just draw graphics on your screen. Older graphics displays may have dedicated chip(s) to repeatedly get data from display RAM to refresh the CRT, and not do much of anything else. Those wouldn't count.

    • @sundhaug92
      @sundhaug92 6 ปีที่แล้ว +1

      @@kc9scott Heck, GPUs are arguably more than one processor of different designs. Also, the IBM PC had a microcontroller for its keyboard, so it'd count. USB does require separate circuitry at least on one side yes

  • @tcsiwula
    @tcsiwula 6 ปีที่แล้ว +39

    I use to sell my old technology to buy new technology. After watching this it makes me want to keep all of my old computers/phones :)

    • @GakisStylianos
      @GakisStylianos 6 ปีที่แล้ว +6

      But if you really think about it, is it worth the space?

    • @romanemul1
      @romanemul1 6 ปีที่แล้ว

      @Stylianos It is.

    • @crby101
      @crby101 6 ปีที่แล้ว +1

      but if i *dont* sell i *cant* buy lul

  • @wp5355
    @wp5355 4 ปีที่แล้ว

    He does a great job of explaining the operation of this hardware and software!!

  • @robf93
    @robf93 6 ปีที่แล้ว

    These videos keep my brain happy

  • @muuubiee
    @muuubiee 2 ปีที่แล้ว

    MIMD would be running multiple instructions on multiple data (like sending it to some arithmetic unit and float unit), not diving it up to do single instruction on single/mutliple data. Parallelism doesn't change what type of register and operation you're using.

  • @Rickmakes
    @Rickmakes 6 ปีที่แล้ว

    You could install a second processor in the Macintosh LC to run Apple II programs.

  • @JyrkiKoivisto
    @JyrkiKoivisto 6 ปีที่แล้ว

    All Amigas has copper, meaning co-processor. It has it's own instruction set and is used to start blitter, set frame pointers, colors etc...

  • @EgadsNo
    @EgadsNo 6 ปีที่แล้ว +1

    I loved my first multiprocessor system was a dual 166MHz 486, think I had a VoodooFX in it. Boy, I miss upgradeable gpu's.

    • @TheBodgybrothers
      @TheBodgybrothers 6 ปีที่แล้ว +2

      Problem was, dos and windows couldn't deal with more than one processor at the time. You had to run windows NT, when it came out, to get multi core use.

  • @kaminutter
    @kaminutter 5 ปีที่แล้ว

    The BBCs (including Archimedes) are the only computer listed which the second processor did not need to be the same type as the main one. It is possible to get a Z80, ARM, 30216, 86 processors as well which.

    • @baronvonschnellenstein2811
      @baronvonschnellenstein2811 2 ปีที่แล้ว +1

      You probably already know this, but If I recall correctly, one of the primary purposes of the "Tube" interface on the BeeB Model B, etc was for Acorn to evaluate / test the processors for their "next generation" machines - so ultimately, the test bed for first ARM or Acorn RISC CPU they built went into one of those side boxes, from which they interacted with the new CPU.
      The other thing I thought was cool was that Acorn prototyped the RISC micro-code on the humble Beeb as well as the circuit design :)

  • @Originalimoc
    @Originalimoc 5 ปีที่แล้ว +5

    1:06 "So the surface is real depressed is just sitting under there...." 😅
    Okay you really should turn on auto sub.

  • @Theineluctable_SOME_CANT
    @Theineluctable_SOME_CANT ปีที่แล้ว

    1980 era video games used up to three processors : sound, video drawing and game logic / ui.
    Semaphore flags in shared memory are used to keep processors aware of what tge other ones are doing.

  • @sabriath
    @sabriath 6 ปีที่แล้ว +4

    Well, the first bit when asked "which systems are multiple processor systems".....they all are actually. There is a chip for all the disk drives that runs separate to the main board chip, and in some instances, has dedicated RAM and ROM for its own programming. It was a long time ago (I was about 10), but I remember being able to solder a couple wires on a 1541 board and had the capability of switching the 6502 ROM pointer to the RAM index, allowing the chip to run editable code on-the-fly separate from the c64, giving you effectively 2 cores.
    Just saying.

    • @KuraIthys
      @KuraIthys 6 ปีที่แล้ว

      ​@@BrianMelancon Fairly sure the Atari floppy disk drives were much the same. the Atari 1050 drive certainly has a CPU and it's own memory.
      Not sure whether it's technically capable of standalone operation, but you can upload custom code to it for sure.
      There's likely a lot of accessories for these systems that technically qualify as computers in their own right.

    • @sundhaug92
      @sundhaug92 6 ปีที่แล้ว

      @@BrianMelancon Yeah Commodore used smart disk-drives (though IIRC the drives used a slightly different CPU, the 6502, instead of the 6510 and such)

    • @sabriath
      @sabriath 6 ปีที่แล้ว

      @@BrianMelancon ... you can now turn your "fairly sure not" into a "definitely has" a processor. I personally never worked with the system on the internal level, but I know the chipsets were there on the board above the drive unit.
      sundhaug92 - yes, the c64 used a 6510, basically the same chip considering the RAM/ROM limitations on the 1541 board anyway (didn't need 6 IO pins)

    • @kc9scott
      @kc9scott 6 ปีที่แล้ว

      I'm pretty sure that Apple II floppy disk drives don't have their own processor. The disk controller board (that plugs into the main computer's bus) is hardly anything more than shift register(s) and a boot ROM. The main system CPU does all the work of group coding, waiting for the proper sector to pass under the head, reading/writing the sector, and running the stepper motor to position the head. This was one of the design decisions that forced them to keep their CPU clock speed unchanged for many years.

    • @sabriath
      @sabriath 6 ปีที่แล้ว

      @@kc9scott ... still requires a card, which has a controller on it, they were stripped down SA400 with a custom built card for the unit.

  • @kcmichaelm
    @kcmichaelm 6 ปีที่แล้ว

    The IBM PC you show had a math coprocessor option (my 5150 had it), that went along with the 8088.

  • @Daniel-lb3jw
    @Daniel-lb3jw 6 ปีที่แล้ว +4

    Many Telephone switches would run three CPUs with a single data stream and the same instructions. It worked in a voting system. Majority win. Another system is to run two CPUs and throw away the data and restart if they mismatch.
    Rockets do a similar system. Multiple cpus with the same instructions and data but must match.

    • @grn1
      @grn1 3 ปีที่แล้ว

      Do modern rockets still do that or have they moved on to some other form of error checking? I heard about the multi-processor approach being used in the Apollo days (if memory serves they used Super Crays) but would think they'd have a better way of doing things now.

    • @Daniel-lb3jw
      @Daniel-lb3jw 3 ปีที่แล้ว

      @@grn1 probably. Rockets that fly regularly will be conservative about true trying new things. If something worked in the past there isn't much reason to change.

  • @henrikjensen3278
    @henrikjensen3278 6 ปีที่แล้ว +2

    The original IBM PC was a multiprocessor system, the keyboard had its own processor.
    Before that I worked on a mainframe with smart terminals (VDU), they did also have their own processor.
    In my opinion you do not rate a computer "multiprocessor" before they all do serious work, all the axillary processors do not count.

    • @sundhaug92
      @sundhaug92 6 ปีที่แล้ว

      So a Commodore 64 could count because the disk-drive CPUs were often used for serious work

    • @henrikjensen3278
      @henrikjensen3278 6 ปีที่แล้ว

      I supposed if you loaded user programs on it that the performance of the computer would double. Both drive and computer uses a 1MHz 6502 CPU (C64 CPU was called 6510, but is mostly the same).

    • @mjouwbuis
      @mjouwbuis 6 ปีที่แล้ว

      The original PC used a microcontroller in the keyboard with a fraction of the computing power of the main CPU. The AT added a second microcontroller from the MCS48 series on the computer end of the keyboard as well. It even used the keyboard controller to drive the A20 line to memory, but I wouldn't really classify it under multiprocessing, even not asymmetrical. Fun fact: the situation is similar to how the PIC microcontroller came into existance. The original PIC1650 was designed as a programmable peripheral interface, to offload the cpu in dealing with devices.

  • @simonvannarath
    @simonvannarath 6 ปีที่แล้ว +5

    Anyone here remembers the Connection Machines?

    • @Conenion
      @Conenion 6 ปีที่แล้ว +1

      Sure, they had a guest role in Jurrasic Park.

    • @peterjohnson9438
      @peterjohnson9438 6 ปีที่แล้ว +1

      I'd love to see Computerphile do an episode on Thinking Machines inc.

  • @billykotsos4642
    @billykotsos4642 6 ปีที่แล้ว +1

    Graphics are amazing!!!

  • @az09letters92
    @az09letters92 6 ปีที่แล้ว

    Amiga keyboard controller chip CBM 6570 has also a 6502 CPU embedded in it.

  • @Nord72
    @Nord72 5 ปีที่แล้ว +2

    The most amazing SMP system was the original BeBox in the early 90"s (way ahead Apple that time)

  • @Xilefian
    @Xilefian 6 ปีที่แล้ว +1

    I used to have a dual processor liquid cooled Apple Power Mac G5, the only dual processor system I've owned. Been wanting to build an X86 dual processor machine for years, but there's little reason to these days.

    • @johnfrancisdoe1563
      @johnfrancisdoe1563 6 ปีที่แล้ว +1

      Xilefian You could use two 64-core EPYC Zen 2 AMD chips. I don't know if the RyZEN series allows dual Threadrippers.

    • @Xilefian
      @Xilefian 6 ปีที่แล้ว +1

      @@johnfrancisdoe1563 I've found it just isn't worth it these days. The on-package multi core systems we've got now are probably more efficient than two separate CPU packages, and the type of workloads I do in my machines don't warrant such massive CPU multi-threaded compute power.

    • @KuraIthys
      @KuraIthys 6 ปีที่แล้ว +1

      Yeah, you get things like that.
      I wanted to build a beowulf cluster for a while, but as much as the idea of it amuses me, I can think of no practical purpose whatsoever to me actually doing so...

    • @sundhaug92
      @sundhaug92 6 ปีที่แล้ว +1

      @LueLou You're a bit outdated, these days the AP in phones will often have 8 cores (4+4), not counting the baseband and such

  • @redriverscout4404
    @redriverscout4404 5 ปีที่แล้ว

    If you look at the final generation of the Apple PowerMac G5 it had both multiple processors with multiple cores.

  • @bibekkoirala2517
    @bibekkoirala2517 4 ปีที่แล้ว

    This was interesting, I love this channel

  • @WizardNumberNext
    @WizardNumberNext 6 ปีที่แล้ว +1

    well
    today must people have smartphones, which from time of Nokia N95 is very much AMP and now it is infused which SMP so now we have HMP (hybrid)
    so we have CPUs (sometimes more then one type of cores, sometimes even different flavour), we have DSPs (oh they do make huge come back into phones - image and sound are processed and sometimes even calls) and we have GPUs, which do sometimes nie then just graphics (most of them are GPGPUs - even N900 had one)
    all those elements are available and actually used on all flagships for years already

  • @hawke2325
    @hawke2325 6 ปีที่แล้ว

    Did the Atari Jaguar have a Blitter chip I know the STFM and STE did and wouldn't it count as a processor. Or maybe it was the other way around it's been a few years since I've had one apart. The last time I was inside my STFM was to upgrade the TOS Chips which I ended up not doing because I discovered it was an STFM with an STE prototype board in it and that's how it shipped from the factory. The board is marked STE so I decided not to flow solder on it. May have been common I don't know.

  • @schifoso
    @schifoso 6 ปีที่แล้ว +3

    Dual Pentium II processors made Windows NT much more responsive.

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 6 ปีที่แล้ว

      And also more expensive. Proprietary OSes, and the proprietary server-side apps that run on them, tend to be licensed based on the number of CPU sockets in your machine. A special exemption was made for multiple CPUs in the same socket, just for the sake of keeping the customers happy, because such a thing was unknown in the 1990s.

    • @schifoso
      @schifoso 6 ปีที่แล้ว

      @@lawrencedoliveiro9104 It wasn't that much more expensive, and NT licensing was fine with only two processors. Didn't have any other software that wasn't part of the MSDN. I believe the motherboard was a Tyan Titan Pro. Funny socket design on that model of processor.

    • @Nord72
      @Nord72 5 ปีที่แล้ว

      @@lawrencedoliveiro9104 : no way, a simple Abit BP6 and 2 Celeron 366@550 Mhz SMP system was available for the "masses" that time ( around 97+)

  • @Erebus-PCFX
    @Erebus-PCFX 6 ปีที่แล้ว

    Fine Graned Multithreading is the way of the future.

  • @GeFlixes
    @GeFlixes 6 ปีที่แล้ว

    So is anything with additional dedicated ships a asymetric multi-processor system? What about security/cryptography modules (like TPM) or even the northbride ship on the motherboard?

  • @autarchprinceps
    @autarchprinceps 6 ปีที่แล้ว +2

    What about BIG.little? Is that still symmetrical, or already asymmetrical?

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 6 ปีที่แล้ว +1

      Both! It’s a tag team of high-powered multiprocessors and low-powered ones.

  • @Dublarty
    @Dublarty 5 ปีที่แล้ว

    A dedicated Transputer/Inmos video would be nice

  • @antivanti
    @antivanti 6 ปีที่แล้ว

    If you have a Commodore 64 with a 1541 drive you have two 6510 processors as the floppy drive has the same CPU. Some games and quite a few demos actually use it for extra compute power.

    • @sundhaug92
      @sundhaug92 6 ปีที่แล้ว

      The 1541 actually uses a 6502

  • @eefaaf
    @eefaaf 2 ปีที่แล้ว

    In the late 70s I worked with a CDC Cyber mainframe that had PPUs that would perform tasks asynchronously from your program on de CPU, for instance for performing IO.
    Come to think of it, why would you call something a CPU when there are no PPUs?

  • @MePeterNicholls
    @MePeterNicholls 5 ปีที่แล้ว

    New iMac Pro can have 18) cores, new Mac Pro upto 28,, is there a limit on effectiveness of number of cores?

  • @el_es
    @el_es 3 ปีที่แล้ว

    Neural network vision accelerators would kind-of be multiple-instruction single-data? in retrospect ;)

  • @soraaoixxthebluesky
    @soraaoixxthebluesky 4 ปีที่แล้ว

    I think SoC can be consider as Multi-Processor too isn’t? Of course they can’t handle instruction set by itself and they work more of like a hardware acceleration which still need an input from CPU.

  • @faiskies_
    @faiskies_ 6 ปีที่แล้ว

    Great video. Very informative.

  • @DavidMarsden
    @DavidMarsden 5 ปีที่แล้ว +2

    I love especially the way he drifts at random on the chair. Like a Dalek with ADHD.

  • @maxschmidt1975
    @maxschmidt1975 7 หลายเดือนก่อน

    I have a peculiar MP-system made by Sequent which contains basically all microprocessors of the era in one box: 2 Pentium 60 and 2 486-50 (these four sharing 160MB RAM), a 68030 handling Ethernet, a i860 handling SCSI IO and an i386 handling 32 Serial Connections. It runs dynix/ptx. It seems like a desperate try to remove all unnecessary load from the CPUs because they were so slow. Does anyone know it?

  • @crogon-yt
    @crogon-yt 6 ปีที่แล้ว

    So as soon as I break my problem apart and execute it in multiple threads does the OS (Windows 7+) then automatically run that on a separate processor?
    Also, what about Intel's "virtual" cores do I get any speed benefit when running threads on them?

  • @play_sports_and_read_books
    @play_sports_and_read_books 4 ปีที่แล้ว

    10:09 so he is basically talking about threads and threading right?
    Or is that a totally different thing (help me i'm confused)

  • @wisdomagunta2209
    @wisdomagunta2209 5 ปีที่แล้ว

    What system currently is running on a multiprocessor ? Names please !!!

  • @harshprajapati9251
    @harshprajapati9251 6 ปีที่แล้ว +1

    any video on assembly language

  • @alphadad1966
    @alphadad1966 6 ปีที่แล้ว

    The Apple keyboard wasn't ADB (predecessor to USB)? And that didn't use a possessor?

  • @Sopel997
    @Sopel997 6 ปีที่แล้ว

    could instructions like fsincos be considered MISD?

  • @smegskull
    @smegskull 6 ปีที่แล้ว

    I would assume multiple processor means multiple CPU to RAM sets. i.e. multi core wouldn't count because it all accesses the same RAM modules unlike server boards which have multiple processors each with distinct RAM slots.
    Though of course even in that case anything with a graphics card is arguably still a multiple processor computer unless you count graphics cards as computers in and of themselves... There's a lot of grey areas here I think.

  • @sunthlower4812
    @sunthlower4812 6 ปีที่แล้ว

    Your shirt has a cool pattern! :D Very stylish

  • @0MoTheG
    @0MoTheG 5 ปีที่แล้ว

    Aside from keyboards were there not floppy disk drives with processors?

  • @Gastell0
    @Gastell0 6 ปีที่แล้ว +1

    0:14 Oh, that's an HP Z820 (or similar), very nice dual processor workstation
    3:01 That looks like a Nexus 9 Tablet with Folio keyboard in a sleeve
    And that's a Yubiko Type-C security key in Macbook!

  • @KC9UDX
    @KC9UDX 5 ปีที่แล้ว

    But if the Atari is multiprocessor due to the CPU in the keyboard, then there's no way you can say the Amiga isn't.
    There is a 6502 in the Amiga keyboard.

  • @technickuk
    @technickuk 6 ปีที่แล้ว

    What about Hyper Threading, how does that work?

  • @jhoughjr1
    @jhoughjr1 6 ปีที่แล้ว +2

    He has a falcon!

  • @gti983
    @gti983 6 ปีที่แล้ว

    The original PC has a slot for math coprocessor , so it can be considered as a multiple processor system.

  • @JmanNo42
    @JmanNo42 6 ปีที่แล้ว

    I have a question GPGPU have been around for a while and alot of math intensive tasks have been made to run on the gpu's like the boinc? gpgpu where you process distributed datachunks .
    But i have not seen a single emulator made to run on gpu why i s that, as i understand there is C,C++ like languages. I am not sure about what CUDA and AMD close to metal was. But i know language like Brook gpgpu was borrowing alot from C?
    The applications that i thought were coming out of gpgpu never really took place just fancy demos?
    A modern GPU has its own memory, and streams audio maybe even process it. So why are there no GPGPU emulators of old computers, would they still utilise to much of processor for th e I/O work?

  • @matsv201
    @matsv201 6 ปีที่แล้ว

    There is one more type of multiprocessor system. What arm call little.BIG. back in late 90-tys I was figuring how to build a system like that using a low power 486 in a PCI slot with a k6-2 or a k7 main processor
    Two major points. Get windows the second thread to hang up. (Back in win 98 time windows time out was quite common).
    The second reason was to make the major processor micro sleep during work. Reducing energy consumption quite a bit

  • @testarossa7993
    @testarossa7993 6 ปีที่แล้ว +8

    Sega Saturn anyone?

    • @sundhaug92
      @sundhaug92 6 ปีที่แล้ว

      Or the Commodore 128

    • @testarossa7993
      @testarossa7993 6 ปีที่แล้ว

      @@sundhaug92 Yep. 👍

    • @nicbongo
      @nicbongo 6 ปีที่แล้ว

      Shining force 3!!

  • @martinh2783
    @martinh2783 6 ปีที่แล้ว

    What gun was it on the shelf?

    • @DrSteveBagley
      @DrSteveBagley 6 ปีที่แล้ว +1

      It's a Desoldering pump

  • @Tone720
    @Tone720 6 ปีที่แล้ว

    First thought was Graphics cards often count as another processor, and that's been case for quite a while.

    • @Conenion
      @Conenion 6 ปีที่แล้ว

      GPUs are mentioned in the video. In the 90ties graphics cards had chips with fixed function units. In the 00s, GPUs became more and more like CPUs because they allowed for shaders to be programmed (but they are more like SIMD, not SMP). See also GPGPU on Wikipedia.

    • @MJ-uk6lu
      @MJ-uk6lu 3 ปีที่แล้ว

      Graphics card is more like a small computer in a computer. It has it's own GPU, VRAM, VRMs. Card is dependent on computer to function, but almost isn't. Graphics accelerators used to do very limited amount of things, but they got more powerful, got reprogrammable shader pipeline instead of fixed shader pipeline. Now nVidia's RTX cards even got some ray tracing processing and deep learning processing, effectively allowing it to do more things.

  • @scotthammond3230
    @scotthammond3230 5 ปีที่แล้ว

    No mention of Amdahl's law? Or this should be in a follow up video.

  • @kayakMike1000
    @kayakMike1000 ปีที่แล้ว

    Pretty much all of them.

  • @chadoftoons
    @chadoftoons 6 ปีที่แล้ว

    I wonder how much can be offloaded from the CPU and GPU into specialized chips at this point while GPUs can run in SLI or whatever i wonder if it would not be cheaper to have Cpus for GPU that further specialize like when humans do that kind of thing. Did you ever talk about bio-computing?

    • @sighko
      @sighko 6 ปีที่แล้ว

      There are actually a significant amount more chips in modern systems. Yes you have the CPU and the GPU, but even within those there are several different chips with different purposes. Most IO devices these days have their own controller chips (these are especially important in SSDs as they are where the real improvement in speed is coming from), the motherboard has a collection of chips.

  • @AmbachtAle
    @AmbachtAle 2 ปีที่แล้ว

    The IBM PC has a slot for an 8087 math coprocessor.

  • @richard9470
    @richard9470 4 ปีที่แล้ว

    I may have a stupid question: how is a computer program able to know how much cpu is being used? How ‘s this « self-awareness » made possible?

  • @russellthompson3201
    @russellthompson3201 6 ปีที่แล้ว

    You talk about multiple processors and blew right past the XP machine as a single processor. Where does the 80X87 math co-processor fit in? Is that a bolt on part of the main processor, or is it indeed a separate processor? I think one could lean either way. The CPU passes information and waits on a result, therefore making it a bold on addition to the main CPU. An 80X87 cannot function by itself (again, my feeble understanding).
    If it is considered a separate processor, the next question is arr all processors 486 and above multiprocessors? I have no clue whether there is a builtin math coprocessing slice of silicone, or of the 486+ cpu capable of doing FP math itself?

    • @sundhaug92
      @sundhaug92 6 ปีที่แล้ว

      By the time of XP machines have the x87 built in to the same circuitry, you'd have to go back to something like the 386 to find the (3)87 separate

    • @sundhaug92
      @sundhaug92 6 ปีที่แล้ว

      Also, the x87 doesn't have a branch-instruction, nor a jump-instruction

    • @kc9scott
      @kc9scott 6 ปีที่แล้ว

      Even with a single-task OS, if you use interrupts for anything, the main CPU could service interrupts as they occur (and thus be able to do something useful) while waiting for the AM9511. Again, I don't know whether the same thing would apply to the 80X87.

  • @SevenDeMagnus
    @SevenDeMagnus 4 ปีที่แล้ว

    Thanks.

  • @stoddcrew
    @stoddcrew 6 ปีที่แล้ว

    Skip to 3:08 to avoid seeing all the examples.

  • @BlackEpyon
    @BlackEpyon 6 ปีที่แล้ว +1

    Don't forget Commodore.

    • @heretolevitateme
      @heretolevitateme 6 ปีที่แล้ว +1

      Sega Mega Drive/Genesis had a separate z80 sound processor, too. And Super Nintendo had 3d games like StarFox and Yoshi's Island that had the Super FX chip in the cartridge.

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 6 ปีที่แล้ว

    14:28 Threads are separate execution entities that share a common process context. It’s not the only way to parallelize a program: there are also programs that run multiple separate processes in parallel.
    In fact, one might argue that threads are about the last form of parallelism you should resort to: look at other solutions first if you can, then fall back to threads if nothing else will do. This is because of their propensity for the most difficult sort of bugs: the ones that are timing-dependent, so attempts to track them down can often cause them to (temporarily) disappear.

  • @koppadasao
    @koppadasao 6 ปีที่แล้ว

    How many of your computers have multiple processors? All of them!

  • @lucidmoses
    @lucidmoses 6 ปีที่แล้ว

    If your counting keyboards, didn't the IBM PC have a processor in the keyboard?

    • @sundhaug92
      @sundhaug92 6 ปีที่แล้ว +1

      It had the 8048 microcontroller

  • @jmm1233
    @jmm1233 6 ปีที่แล้ว +1

    yay for Atari St

  • @mastermuke411
    @mastermuke411 6 ปีที่แล้ว

    Did anyone else see the sailboat pop out from that guy's shirt?

  • @orlovsskibet
    @orlovsskibet 5 ปีที่แล้ว +1

    I want one of those dual core sandwich makers 😋😛

  • @Mynx31
    @Mynx31 6 ปีที่แล้ว

    Signal processors?