it's 1961 let's go shopping for a cheap small computer the popular choice is this an IBM 1401 complete with a punch card reader and printer it weighs about a ton and costs about $3.5 million in 2024 money if that's a little too much you could always try out one of these pdp1 at$ 730 kilos and a touch over a million dollar in 2024 money there are other options of available but none way less than a grand piano and all cost more than a mansion that's because every digital computer in production at the moment comprises of
individual or discrete transistors these must be installed individually into circuit boards which are connected into logic units to form a processor collectively these draw a lot of power create a lot of heat require a lot of room and require a lot of time to assemble now let's skip forward just 10 years to late 1971 you a member of the public can order one of these for just $450 in 2024 money this is a fully functional processor on a chip a microprocessor it's several orders of magnitude smaller and cheaper than the main frames of the early
1960s quite an astounding change in just a decade as far as almost everyone on Earth is concerned this is the first chip scale processor ever developed now let's skip forward another 27 years to 1998 a paper from 1971 is quietly Declassified it turns out there was another microprocessor in existence more than a year before the 44 was released it was called the MP 944 in fact it was significantly more advanced than the 44 boasting some features that weren't seen in consumer microprocessors until the 1980s why was this pivotal piece of computing history kept secret for
more than 25 years because the MP 944 was the air data computer for the US Navy's Flagship fighter jet the F4 Tom [Music] Cat [Applause] the airplane has the computer control swing Wing concept which gives it a great Advantage as far as being a good dog fighter is [Applause] concerned okay back to the present day every video I've made in the past has been about something I've known about for years this one's a bit different it was suggested by a viewer now I've covered similar topics but I'd barely heard of the MP 944 until a
few months ago and reading up on it has been fascinating it was created by a team of about 25 engineers at G AIR research over the course of two years the designers of the chips themselves were Steve Geller and Ray halt someone whose name Will crop up repeatedly in this video as Ray is very much active even today before we go into the details just a quick couple of points as with all my videos this is arranged into chapters so feel free to skip ahead if a particular section isn't of Interest I do tend to
go into quite a lot of depth on the technical details similarly I'll make reference to some of my previous videos but they're by no means essential viewing and this video is very much Standalone and finally we all make mistakes unfortunately you YouTube doesn't allow me to make minor Corrections once a video is published so if I get anything wrong do let me know in the comments however I will add any known corrections to a pinned comment I ask that you check this first before posting for clarity MP 944 refers to the collection of chips these
chips were integrated together to form a computer known as the central air data computer or cadc so the MP 944 was the microprocessor the cadc was the computer let's take a step back and discuss the F14 I've stood up controversy in the past by saying this most modern supersonic aircraft are inherently unstable that's the reason most of them look really ugly 14-year-old me would be extremely angry if he heard me saying that so let me clarify what I meant there if you're like 98% of my audience you're a man go and find the nearest woman
or child and ask them what's the best looking of these aircraft they'll usually pick the one that isn't big scary and pointy years ago I helped out at an air show I was showing visitors around the RAF trainer aircraft one of these a very quick injection from future Alex here um I was never actually in the military I was in a glorified version of the cadetes when I was at un city um I don't want anyone thinking I'm one of those weirdos that pretends they were in the military when they weren't okay back to the
video we were parked right next to a tornado fighter and we assumed no one had care about our tiny little propeller plane we were wrong we were totally inundated with kids who wanted to sit in the actual plane not the weird looking jet next to it so that's what I say when I mean ugly fighter aircraft are most certainly not designed to look good but but a side effect is they tend to look really intimidating and the most intimidating looking fighter ever built has to be the F14 designed to replace the F4 as the US
Navy's main carrier aircraft it served until 2006 for the US military in fact some are still in service with the Iranian Air Force today but that's something we'll come back to later now I can't really talk about this jet without mentioning one of the reasons it's famous it was in Top Gun you know the film about volleyball I'm going to stir up more controversy here I don't understand why that film was so popular I I'll just leave it there and I'll not mention Top Gun again anyway one of the reasons it's so distinctive is also
the reason it needed a flight computer variable Wing geometry also known as swing Wings every time I try and discuss supersonic era Dynamics I get something wrong so we'll keep it really simple this time when flying at low speed for example on approach to Landing we want as much lift as possible to maintain stable flight this is when the F-14 would swing its wings forward into what I like to call the T pose however this creates a high aspect ratio which creates more drag so if we want to go fast we go from a t
pose into what I call the Naruto run configuration now Jokes Aside improvements in aerodynamic computation and design in recent decades have rendered variable Wing geometry obsolete but these were all the Raging the 1960s and70s with the computer enabled the wing position was set automatically with no pilot input this ensured the aircraft was in the appropriate configuration for the given speed and altitude furthermore it reduced task loading on the pilot and reduced the chance of the configuration being change during the wrong phase of flight in a previous video I heavily criticized Virgin Galactic for not using
a flight computer to actuate the rotating wing on spaceship 2 in fact that was the cause of a fatal accident in 2014 it's nice to know the F14 was able to autonomously change its wing geometry via a computer more than 40 years before spaceship 2 first flew earlier similar aircraft such as the f111 when a notoriously difficult to control during the transition from One Wing configuration to another though I should know the f111 was an excellent aircraft with an excellent combat record but it's not difficult to imagine why this transition was a challenge swinging the
wings completely altered the flight characteristics of the aircraft in a few seconds and this may be carried out whilst flying at transonic speeds where flight characteristics are already unpredictable I'd always imagine the F14 had require straight and level flight and a lot of care to transition from one configuration to the other and I was completely wrong there are videos of it sweeping the wings back and forward while inverted mid maneuver in steep Banks think of an attitude and there's probably a video of an F-14 actively sweeping its wings back while in that attitude somewhere as
most of these videos are from air shows the pilot manually overrode the computer to select the wing position but the movement itself was still controlled by the comp computer to ensure stable flight was maintained when the wings were swept back this posed another problem and I've discussed this previously on this channel those large lifting surfaces moving backwards move the center of pressure backwards too normally this is a good thing we want the center of pressure to remain behind the center of gravity as this maintains stable flight in the longitudinal axis but in this case it
was too far back reducing the maneuverability of the aircraft not something you want in an aircraft designed for dog fighting so there were small surfaces that could be extended from the front of the Wings these were known as glove veins again it wouldn't be desirable just to extend these at a fixed rate as they could radically alter the aircraft's handling quickly so the computer also control the extension and retraction of the glove veins later in the F-14 life these tended to be disabled altogether due to their mechanical complexity but the computer had always been designed
to control them if needed the final mechanical output controlled by the cadc was the maneuvering flaps the primary control surfaces for rolling with the tailor runs and wing spoilers though the latter could only be employed at low speed however by partially extending the flaps the F14 was able to enter a tighter roll than would otherwise be possible if the flaps were set to maneuvering mode the cadc actuated them automatically to meet the Pilot's inputs so physically the cadc was required to actuate some of the F14 secondary control surfaces namely the variable Wings the glove veins
and the maneuvering flaps not quite a full flyby wire aircraft but the cadc did act as a flyby wire computer for these surfaces but it wasn't called the central partial fly wire computer so what about the data in cadc anyone who's flown a light aircraft will be familiar with the mechanical instruments which are able to convert air pressure and temperature to readings such as air speed and altitude at high air speed and altitudes however this is surprisingly difficult due to factors such as the compressibility of air and changing Mac limit with temperature the formula to
determine speed and altitude become nonlinear so a simple mechanical indic indicator is no longer sufficient supersonic aircraft of the 1960s such as the F4 used complex mechanical computers to provide flight data to the pilot the cadc however was the first microprocessor-based flight computer to achieve this specifically it provided altitude temperature and air speed to the pilot and probably some other metrics that I can't find references to and this leads us on to the final function of the ADC it provided necessary data to the weapon system the F-14 had a particularly Advanced weapon system for the
time able to track and Target multiple Airborne targets simultaneously six simultaneously to be specific prior to firing airto a missiles the state Vector of the missile was passed to the weapon system a crucial metric was the angle of attack of the aircraft as this had determined the initial attitude Corrections necessary for the missile after firing the needs of the weapon system also give insight into the requirement for a 20 bit data length the required resolution for the altimeter was just 1 foot smart bombs didn't exist yet so to line up for a bombing run the
speed and altitude of the aircraft we used to predict the ballistic trajectory of a bomb providing the pilot with an optimized time to release in fact the aircraft was flown on altitude hold during a bombing run with a service ceiling of around 50,000 ft which by the way is already a 16bit number high altitude runs could foreseeably take place in rarified air where the difference in pressure between altitudes was minimal hence the need for that 20 bit Precision the term micro processor was barely used during the early 1970s it was largely retroactively applied to all
the devices we'll discuss today ironically it's not a common term today either what was called a microprocessor in the past is now generally referred to as a CPU more specialized Hardware such as gpus and fpgas would probably also fall under the definition of microprocessor so what is a microprocessor there's no official definition as such so let's just go with Wikipedia that states quote a microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit or a small number of integrated circuits and with that we immediately run into
an ambiguity a small number of integrated circuits what exactly is a small number and for that matter does something that can only input and operate on one bit count as a microprocessor do the logic elements all have to be on one chip the Intel 44 is most commonly cited as the first microprocessor it was part of a 4 chip collection referred to as the mcs4 we'll be exploring the 44 in more depth later however Intel's claim as that being the first microprocessor is far from solid in fact Intel themselves refer to it as the first
commercially available microprocessor let's compare it with the MP 944 I'll warn you we're going to be seriously splitting some hairs for the next couple of minutes that's because there seems to be quite heat a debate online as to what the first microprocessor actually was so it's important that we get our definitions clear okay so which came first there's no contest here the MP 944 chipset was completed in June 1970 the first 44 was produced in January 1971 with the first sales of the finished product to the public in November 1971 now let's look at capability
briefly we'll do a whole chapter on capability later the MP 944 could perform logic and arithmetic operations on 20 bit numbers the first bit was used to denote a negative or positive number so this means the processor could natively handle integers between negative and positive 524,000 I to handle numbers outside of this range but that requires significantly more compute time and coding as we have to deal with overflow logic and store and process the intermediate results the 44 that could handle just four bits meaning it could natively handle numbers between 0 and 15 that's really
not much now this was enough to build a calculator if we assign a 4bit value for every integer in a number but even that required significantly more code than an 8bit or higher processor you couldn't for example build a practical desktop computer with a 4-bit processor now this is the first of many controversial statements I'm going to make during this video but I reckon there's even a debate to be had as to whether a 4-bit system is complex enough to even be called a microprocessor for the record I think it still counts but it's not
really the same thing as something like a 6502 or a z80 which were popular cons consumer products about a decade later okay now the big one the number of integrated circuits the biggest common strike against the MP 944s claimed to First microprocessor is the fact it consisted of six distinct ic's and some people insist that a microprocessor can only consist of one IC now of course there's a lot of nuance to this two of these are the ROM and the ram so we can discard those as being part of the actual microprocessor or can we
we'll come back to that the next two ic's are essentially specialized co-processors the parallel divide unit and the parallel multiply unit these do exactly one thing they take two numbers and either multiply or divide them now perhaps we require the presence of these two chips for the system as a whole to work no we don't this often overlooked sentence from ht's 1971 paper clarified quote each unit was designed to operate as a separate entity and could be used without the need of any other unit end quote that is really interesting in theory any chip from
the system as a whole is able to operate by itself so how many do we need to form a full-blown microprocessor the final two chips are the steering logic unit and the CPU now in theory you could feed in a sequence of pulses into the appropriate pins of the CPU to provide it with data and instructions and you'd receive outputs but in reality we need something to manage our various inputs and feed them into the CPU and that is the SLU for now we can think of this as an IO interface between the outside world
and the CPU it's not really part of the CPU it just translates inputs into a form that the CPU can use so the CPU can in theory operate by itself is that an unambiguous case of a microprocessor on a single integrated circuit unfortunately no the CPU can perform various logic functions but it can't add or subtract wait really yeah the MP 944 did addition and subtraction on the SLU chips this sounds unusual but it actually provided a major benefit as we'll see later but that means a minimum of two integrated circuits were required let's swing
back the other way not quite the CPU could perform a variety of logic functions and it could also perform conditional branching I'm almost certain that makes it cheing complete so while it couldn't add numbers directly it could do so indirect ly making it a viable yet highly impractical single chip microprocessor except we swing back the other way again the CPU was missing something else it didn't contain a program counter this is a register found in all standard CPUs which keeps track of our current memory location also known as our current place in the program the
program counter for the MP 944 was in the ROM yeah so while it would be theoretically possible to use the CPU chip by itself to perform logic and arithmetic to actually run a program and do something useful we'd need a ROM chip an SLU chip and a CPU chip okay so for the absolute purists who insist a microprocessor must consist of a single integrated circuit the MP 944 loses to the 44 right wrong it turns out the 44 couldn't operate as a single chip either as with the MP 944 CPU the 44 needed a separate
IO chip to function in order to get the logic functionality onto a single silicon D the 44 required extensive simplification one of the simplified elements was the data decoding it wasn't possible to hook up the necessary 12 address pins and eight instruction pins so a shift register chip was necessary in order to transfer the data in and out of the CPU similar but less advanced than the SLU used in the MP 9944 that got complicated quickly so I'd better throw a final spanner in the works there's another entirely separate Contender the four-phase CPU is almost
impossible to find meaningful information on but several hundred were sold in the early 1970s is in terms of complexity it sat somewhere between the 44 and the MP 944 unlike the Forma 2 the logic functions of the CPU itself were split between three chips however it was claimed that one of these could function in isolation as a dedicated 8bit CPU however again there is a lot of controversy here including a court case and allegations of deception which honestly ly appeared to be quite valid if we drop the strict requirement that a microprocessor must be on
a single chip and include the MP 944 it feels like we should probably include the four phase as well even though it's more split up as such than the MP 944 that said it's probably easier to disqualify it from the title of first based on date the four-phase system was unambiguously completed in October 197 when the first sales were made recall the first unambiguous date for the MP 944 was June 1970 when it was accepted by the Navy of course there's some ambiguity regarding earlier Restorations of both designs the four-phase system looks fascinating but there's
so little information available on it it had require researching and producing an entirely separate video so what was the first microprocessor I I don't think it matters the definition is arbitrary ambiguous and outdated personally if you forced me to take a side I'd refer to the MP 944 as a microprocessor and probably the first one at that you may disagree and that's fine but the one thing we can probably all agree on is that the MP 944 was incredibly Advanced for its time let's find out exactly how advanced it was carrying out any technical contract
for the US military carries a blessing in the form of practically unlimited potential for funding it also carries the curse of stringent requirements and there were many requirements for the cadc project the first was the requirement to operate at milspec temperatures 55 to positive 125° grade specifically now that's not entirely outside the Realms of possibility for Consumer based Hardware today but imagine building the world's first microprocessor only to integrate it into a computer that was capable of running in a SAA pretty impressive another requirement which had the potential to shove the whole project was failure
analysis every engineer learns about time-based failure prediction components tend to fail after a mean amount of time in use otherwise known as meantime between failure and depending on how they are used we can get a good idea on how failures are distributed around this mean if one component fails we can often predict how long it'll be before Associated Parts fail it's not difficult to imagine the military putting huge focus on these failure metrics weapon systems cost a lot of money in both capital and maintenance and they perform life and death critical function functions so I
can only imagine the mounting horror felt by the US Navy's representative late into the project when the cadc team sat him down and explained failure metrics didn't exist for the computer it was a brand new system with no operational history and nothing analogous to compare it to fortunately an excellent workaround was devised rather than predicting failure based on past data with something like a microprocessor it's possible to diagnose failure in real time after all a microprocessor and its Associated memory is really just a collection of transistors so by writing programs that execute instructions that use
every transistor at some point and then comparing the output with the expected output a single transistor failure could in theory be detected through some clever coding Ry was able to devise self- diagnostic programs that tested every trans transistor on four of the six chips and that includes the ROM and the ram by the way the parallel multiplier and divider chips were checked for 98% of failure cases with the remaining 2% being non-critical for flight these self- diagnostic checks were carried out as part of the main program Loop if a failure occurred the pilot would know
about it within 1/8th of a second and a second completely redundant computer was automatically activated and the pilot notified by a light in the cockpit so about that 1/1 18th of a second number to calculate the flight characteristics the cadc was required to perform about 600 calculations every 1/8th of a second and when I say calculations I don't just mean integer operations I mean full calculations the most common was a sixth order polinomial like this however to obtain a solution the formula was real rearranged into this form and that required a lot of multiplications a
multiplication takes a while on a conventional CPU the MP 944 had a clock speed of 375 khz so this would give an average of only 35 instructions per calculation and that's if we assume one instruction per clock cycle which as we'll see is a very weak assumption with such a low clock speed it'll be flat out impossible for a conventional CP of the day to perform so many calculations so quickly so now we'll take a dive into the architecture of the MP 944 which completely set it apart from anything else that existed at the time
we've already seen the six different integrated circuits that make up the MP 944 let's walk through what each did in detail and how they were integrated to form a working computer rais paper actually discusses a number of potential configurations but we'll look at the one configuration they were actually used for the F14 cadc in essence the job of the cadc was to take digital inputs from a number of sensors and turned those into usable outputs of course to process these inputs a series of instructions were required in other words a program the MP 944 microprocessor
was a modified Harvard architecture with the program and variables residing in separate memory the program was in the ROM which was the first of the six ic's in the cadc multiple ROM chips were used to store the entire program overall control was provided by the system executive ROM with lesser ROM units supplying instructions to individual compute units as mentioned the program counter was housed in the ROM this is unusual but was a deliberate choice to reduce the number of traces on the board since none of the compute units needed to be able to communicate the
program location to the ROM therefore this made best use of the available physical space I imagine this would have also made the system more difficult to program but as we'll come back to that wasn't really a problem since it needed to be programmed once and once only for its intended purpose outputs consisted of both direct digital signals and values written to the second of the ic's the ram as with any conventional computer the ram contents could be read as variables for subsequent program instructions or they could be output as and when necessary so how did
the computer get from ROM instructions and digital inputs to stored results in Ram and digital outputs I'm going to work backwards as we expect there was a CPU in this case it was known as the special logic function or slf though I'm just going to refer to it as the CPU for ease of understanding now I can't show the exact architecture for the CPU as it's never been publicly disclosed but here's what we know about it like any CPU it consisted of a number of registers in an arithmetic logic unit or ALU values were stored
in the register and basic arithmetic was performed on these values using the ALU this gave an output and as with most early CPUs the ALU was capable of basic logical operations however this chip differed from a conventional CPU in several aspects first of all it was specialized for one particular operation the limit function this is a basic operation shown on screen here it simply clamps a given input between upper and lower bounding values this function was required so frequently in the flight calculations that the IC was optimized to perform it one register was designated for
each of the bounding values with a third being used for the input when the limit operation was performed the correct register was chosen as the output I'm not exactly sure how other logical operations were per formed but I imagine the two inputs were stored in two of the registers with a third used as an accumulator which is a special register to which the ALU can write and read from directly the second unconventional design Choice was the number of pins typically values are passed in and out of a CPU in parallel in this context that means
one pin per input an output bit remember the MP 944 had a 20 bit architecture so when I discuss values I'm referring to 20 bit numbers conventionally this would require 20 pins for the input and 20 for the output and of course some additional pins would also be needed for Power Clock synchronization ground reset and testing this wasn't really feasible in this case one of the design constraints from the Navy was for the system to fit on a 40 square in board that's just 15x 15 cm bear in mind the Apollo guidance computer first flew
Just 4 years before the cadc was completed and was considered an absolute Miracle of miniaturization it weighed 30 kilos and was 60 by 30 by 15 cm so the cadc team designed the entire system to operate serially inputs and outputs formed a sequence broadcast via single pins the lower pin count however came with the penalty of longer transfer times between compute and memory as each 20 bit value now required 20 clock Cycles to move from one place to another it's also a complete headache to understand and it must have been a nightmare to program to
generate serial inputs for the CPU a dedicated IO chip was necessary this was the data steering unit recall the io chip necessary to use the Intel 44 this was so much more than that it accepted inputs from either digital sensors or from the Ram or ROM and steered these inputs to where they were needed if I understand correctly each SLU accepted up to 13 inputs and could provide serial data to three outputs through the use of appropriate commands the necessary inputs could be sent to the CPU however as mentioned this chip also had the capability
to add and subtract data wasn't just steered from input to Output two inputs could be added or subtracted as they were being shifted performing the operation during data transfer allowed for fast addition in fact due to some clever design the SLU could actually add three numbers at the same time you could see how the D was serially shifted through the unit and steered to the required output here though bear in mind I'm showing only 8 bit numbers and five inputs in reality 20 bit numbers were steered from 13 inputs in the case of the cadc
each data steering unit only made use of a single output but other configurations were possible including using the output from one steering unit as the input to another steering unit quick side note if you can add you can also subtract it's done by converting the binary representation of a number to its two's complement the MP 944 generally operated on tw's complement but we're not going to go into further details on that here so what we have here now is a complete module able to read instructions and data steer necessary data to a CPU and use
that CPU to perform calculations outputting the results to R or directly but we're not done yet what really set the MP 944 apart from other processors were the parallel units today we'd refer to these as co-processors there were two a parallel multiplier and a parallel divider let's focus on the parallel multiplier as I think that one's a little easier to understand functions such as the sixth order polinomial I mentioned earlier require a lot lot of multiplication and fast early CPUs were pretty terrible at multiplication because they couldn't do it well not directly anyway when it
comes to multiplication the only useful arithmetic instructions available in most CPUs from the 1970s were addition and bit shifting one way of multiplying X by y was to add X to itself y * of course for a 20 bit number that would take practically forever the more conventional approach was to use long multiplication just as we teach at elementary school here we take X multiply it by each bit of Y and add the partial products but hold on I just said we can't multiply turns out we don't need to since we're dealing with binary only
the partial products can be defined conditionally every partial product is either X or zero because we only ever multiply by one or zero however this still takes a long time especially for 20 bit numbers so the next approach is to use a specialized algorithm for multiplication in this case Booth's algorithm I was going to explain exactly how this works but that take a while so I've linked an excellent video instead I'm showing an implementation on screen now though for a couple of 4-bit numbers now it's possible to implement Boo's algorithm on a simple CPU however
without specialized Hardware it still takes ages so let's make a more specialized arithmetic logic unit that can perform Booth's algorithm in Hardware it takes X and Y and automatically executes the algorithm sending the result to a third register in fact if we smart we could send X and Y to this special ALU and and while we're waiting for the result we could perform other simpler operations on our first ALU and we could do addition in the SLU at the same time we don't need to let a lengthy multiplication operation lock up our entire process if
we run it in parallel and that is the fundamental concept that allowed the designers of the cadc to claw back time lost to serially moving data they used parallelization in reality this second ALU and it's a Associated registers were housed in a separate dedicated chip the parallel multiplier in fact parallelization wasn't the only time-saving Innovation here that time taken to shift the result of the output register the next input could be shifted in at the same time this approach of overlapping one operation with the next is known as pipelining and the MP 944 was the
first microprocessor to do that too all the chips I've discussed so far were capable of simultaneously shifting data in and out in this manner and as mentioned there was also a parallel divider unit basically the same as the parallel multiplier but for division now I must stress both of these parallel units were particularly complex for the time just on their own incorporating them into a fully working system was really quite spectacular and with that we have the full architecture multiple duplicates of some of the chips were used in the implementation for the cadc forming distinct
compute units each controlled by their own ROM and SL and outputting to Dedicated Ram according to the 1971 paper this was the configuration used by the cadc in total there were one of each of the CPU pdu and pmu chips three steering units three Ram units and 19 ROM chips in my video about the Apollo guidance computer flyby wire system to which I've already made several references we discussed at length how complex software engineering was used to tackle many of the problems the Apollo guidance computer itself was a reasonably general purpose machine in some ways
the cadc was the opposite it difficult problems tended to be solved in Hardware rather than software any computer executes its code AS machine code strings of digital inputs represented by binary words in the case of the Apollo guidance computer a compiler was written which allowed programs to be written in Assembly Language which is more human readable this was then converted to Binary by the compiler for execution in fact the Apollo guidance comp computer team also created a higher level language for more complex sub routines and they were able to simulate more specialized Hardware by using
what were essentially virtual machines the special purpose alu's parallel processes and other Hardware in the MP 944 performed these more specialized tasks without the need for either highly complex sub routines or simulating more complex Hardware in code the trade-off was there was no compiler due to time constraints all coding was performed in just 3 months this isn't necessarily as bad as it sounds remember the cadc in which the MP 944 was used was application specific it was designed to do one thing and one thing only on the other hand the team decided they didn't have
the time to write a compiler the entire program was written not in assembly but in binary machine code the final program was over 60,000 bits in length or about 3,000 instructions as was the case with the Apollo guidance computer it wasn't possible to continuously develop and test code snippets on the actual Hardware the ROMs to which the code would be written required at least several weeks to manufacture so it was all or nothing the entire code base was to be burned to the ROM and run in one go coding up the ROM had the additional
complexity of there not being a single monolithic program looking at the system architecture each data steering unit to compute unit combination required its own set of instructions so an overall program control ROM or program executive was necessary to orchestrate all of the individual modules and when I say module I'm referring to both software and Hardware actually so individual ROM chips required their own standard Lo code of course coding this all in one go is infeasible no one can write 3,000 instructions correctly without a single mistake so a means of simulating the hardware to test out
code before final manufacturer was required Ray's brother Bill was actually pulled into the project to solve this he created a simulator for the MP 944 in Fortran I've not been able to figure out exactly what this simulator looked like like but I presume it ran on an IBM Mainframe or something similar crucially it emulated every transistor in the MP 944 chips and so allowed Ray and the team to test sub routines without having to create dedicated ROM chips the second solution was the creation of a physical simulator using discrete components a mockup of the MP
944 was built to function test the hardware itself of course due to to the larger scale it would have run much slower than the chips but it was sufficient to prove functionality before the actual chips were manufactured the code was delivered to the manufacturers on punched paper tape floppy drives didn't exist yet so this was the only practical means of doing so when the manufactured ROM chips were received a few weeks later they worked almost flawlessly a single bit out of a total of more than 60,000 was incorrect requiring remanufacturer but honestly that's about as
good a result as anyone can ask for the corrected ROMs were delivered a few weeks later and the completed project was handed over to the Navy for evaluation in June 1970 we've spoken extensively about what the MP 944 chipset could do unfortunately I can't get my hands on an F-14 so instead let's take a look at the Intel 44 for comparison we'll see it was severely lacking in functionality alongside the MP 944 that said I want to make clear that the 44 was still a remarkable achievement for the time Mass producing and selling it at
an affordable price required a number of technological breakthroughs it also required some significant compromises I have one here in order to use it I've built retro Shield which is an open- Source board available here on GitHub it allows an Arduino to simulate the ram ROM and IO chip so in theory I can write a programing 44 assembly and upload it to the Arduino to be run on the 4ow 4 unfortunately the documentation and code for the Retro Shield is a bit lacking or incomplete so I'll just show it running here if anyone wants a more
detailed video on the 44 in the future I'm happy to get it all figured out so just let me know in the comments but it'll take me a while the first major compromise was of course the 4bit data and address bus as I've already mentioned the 44 could only count to 15 this does mean it was able to handle a single digit per instruction which leads us onto its primary use case a calculator the 44 was specifically designed to be the CPU for the busicom 141 PF calculator it's not very exciting is it in fact
the retr shield repo includes the code to emulate the calculator but it doesn't seem to work for me the 44 did see a few other uses including most notably in pinball machines but it was just too simple of CPU to be used for anything beyond this really that 4bit data bus simplified the chip design but it comp licated programming four4 instructions were at minimum 8 Bits in length and the chip could address 12 bits of memory so how do we get these instructions and addresses in and out of the 4- bit buses the answer is
to serialize them unlike most microprocessors where instructions are fed in a single clock cycle the 44 required them to be broken up here's how the 44 requires two independent clock signals with a Max clock speed of 740 khz they must be provided in the pattern shown here the chip will then respond with a sync pulse every eight Cycles as shown this pulse denotes the start of a full execution cycle the required memory address to read from or write to must be split into three 4bit words and provided during the first three clock Cycles then the
instruction to execute must be provided during the next two the final three Cycles are used to actually execute the instruction of course the shift register chip would handle much of the splitting up and passing of instructions to the CPU although the clock speed was 740 khz the need for eight Cycles to actually execute anything limited the CPU to 92,500 instructions per second as there was no capability for pipelining or par processing we should of course note that the MP 944 also accepted an output data in serial but as we've already discussed the extensive design decisions
that were made negated the time penalty for doing so a real Plus for the 44 is the registers it has 16 internal 4-bit registers honestly that's probably enough to do useful things without the need for a ram chip at all if I put my mind to it I could probably get this running Tic-Tac toe without any Ram but that's for another time but where registers are abundant a stack is not there is technically a stack on the 44 but it's just three addresses deep so you couldn't really use this chip for any recursive operations or
nested branching commands I also noted whilst playing around with the 44 it doesn't really feel like a microprocessor it's more akin to programming a microcontroller and yes I did verbally mix up the two in my previous video this is due to the modified Harvard architecture you have to write your program entirely save it to ROM and then execute it you can't run code from the ram in fact there are only 640 bytes of RAM available again this limitation if you want to call it that was also present on the MP 944 and that's because the
MP 944 was designed to do one thing and one thing only and that brings me to my final point about what is and what isn't a microprocessor the 44 and the MP 944 were made to perform specific tasks directly off the shelf the 44 is probably more versatile due to the presence of a compiler and a more general purpose arith IC logic unit but the MP 944 can perform much more complex operations much faster and provide results to many more outputs most consumer microprocessors are not application specific and can be manipulated to perform a wide
range of tasks so it would be fair to say the MP 944 and the ford4 are both microprocessors or neither of them are either way as as I keep stressing the MP 944 was significantly more complex the only f-14s remaining in service today with the Iranian Air Force how they got there is a story for another day the Iranians have managed to keep them flying through a combination of Ingenuity determination and presumably pure spite in fact some escorted Putin's Entourage into the country just a few weeks before I released this video to prevent spare parts
illegally reaching them the US destroyed its remaining F-14 stock following their retirement in 2006 Ry has a complete set of MP 944 chips in his personal collection as far as I can figure out these May well be the only remaining examples in existence outside of Iran though destroying them feels like a crime against historical preservation I suppose no one involved in the destruction would have had a clue they were wiping out something of such significance through my adult life I've been through a belief Arc that many viewers can probably relate to I used to believe
all military spending was AB Boren and should instead be directed to science medicine space exploration Etc then I grew up and accepted we simply not there yet in recent years I've come to realize that many of the benefits I tout for funding The Sciences are also delivered by the military a huge proportion of military spending is directed at science medicine and space exploration the internet GPS encryption technology the list of everyday benefits that originated as military-backed research is almost endless so do we spend too much on defense I I I don't know I'm not the
person to ask for an opinion on that the MP 944 is not a good example of all the above it didn't change the world and it was a metaphorical dead branch on humity technological tree it makes perfect sense that the project was classified however looking back more than 50 years later it seems almost tragic that home Computing could have taken quite a different course had the architecture somehow been made public back when I made a video about the invention of digital flyby wire I believed there may have only been one computer on Earth at the
time capable of Performing the job and that was the Apollo guidance computer after producing this video I now know there were two I wonder whether there were any more thanks very much for watching