Welcome, my talk will be about a very old computer that was designed and operated in
Belgium, so prepared to forget a lot of things you know about CPUs and the way you
could, and actually well, maybe a word about where I'm from, so I'm from the
IP computer museum, small museum located the transfer for Brussels, so you still have time
of some more days in Brussels, on the next time you come, don't hesitate to come in
digitized, and of course we have a lot of usual mission as a museum, like preserving
artifact exhibition, and we sure so we, for this talk, where we devoted so I thought to study
this machine, the machine that does not exist anymore, so we had to look back into existing
documents, and we tried to understand how it worked really, what were the dynamics of the programs.
So as I said, we will go back in time, so we are now in 2025, being the fifth generation
of computing, I don't know, but we have for food generation, so first, first thing, forget about
the microprocessor, back to the third generation, also forget about the integrated circuit,
back to the second generation, forget about the transistor, we are back to vacuum tubes,
magnetic drums, delay lines and tip and punch cards.
Okay, well, a previous talk, there was some joke about the definition of a computer,
I can go further in that, well, in the 50s, what were computers? Well, if you did not specify,
it was device could be a human, a human computing, taburs, computing, trajectory for rockets, for
examples, you can see a few there from the Nakya, which was before the NASA, you see by the way
that those human computers were a bit different than us, yeah, just a joke because I look at the
audience and the women and still not very well represented, so maybe to add to the curve for
presenters, I hope next year there will be a woman also presenting it at my place and that we are trying
to make more balancing in gender also here in computing, but it's the case for the human here,
the top and are so far you see the operator also, so it's not really the operator, there were also
the guards were also programmers for the in-ac, okay, so I close this, so yeah, so beside the
human yourself, the electronic mechanical calculators and computers and also are really computers,
wired or stored programs, that in fact the real, when the definition of computer
and that will form the first generation of computer, the first one really was the attack with
a stock computer, the enac here, actually, was at two, two payout, the first one was really wired and then
the new man came and proposed the architecture and it was he designed and the second version was really
also a sort of computer, while the arvart market, you see the arvart architecture to be used
a little in my talk, it's another way to organize the computation, so my talk is about a mathematical
machine, so what do I mean by that is just about the purpose of the computing, so the purpose
of the machine is just to perform scientific and technical computation rather than business
processing, what does it mean, it means that you have, you must be able to solve an
numerical problems efficiently and in fact, it means that you need some kind of high precision arithmetic,
could be fixed or floating point, we'll see in our case for the Belgian mathematical machine,
it will be floating point, for other machines, there was also a fixed point, also you will
have to be able to compute a specific function, like trigonometric function, exponential,
the garym-6 like that, we'll see how we will do that and of course, as usual, you need control
flow to control the flow of instruction, a bit of the context, so twice we are post-war
two and in that job of course, we are interested in developing expertise in
electronic computing to avoid depending on the device, like no further AI, and so we want to
to apply that for mathematics physics and other engineering domains, and the approach they can
was to thank people in the US, so they looked at the machine that were being built, they were also
involved in building some machines, especially the Mark III, and of course, the Mark was designed
by Orte Eiken, and also made connection with that guy, and you can see there the
result, of course, to convince or funding authority that it's a good idea to invest in that,
and of course, it was also consultant after to helping in the building, it's called ICCFNRS
ICCFNRS, the funding organization budget that gave them money, okay, so when shortly we had
for, for period, for about the ID and putting the project in, in production, and then
really from 52 to 55 designing the machine for the first version, then it was inaugurated,
there was the king and some fact that, and they decided to be for to put it in production
to in ICCFNRS, so for two years, in 1955, there was an extension to build the capacity of the
machine, and then from, he lived from a 57 to 62 for those five years, twice, okay, rate it.
So what does it look like? You see, a very big machine, about 70,
meternal, for the version, and 30m for the second machine, so the double the capacity,
for the hardware, we had from 3,000, then 5,000 out of the cube cube, so it means gates,
so the equivalent of transistors, so if you remember the intel of 4,000, 4, it's about
2,000, 60 and rate transistors, so you have an ID, we have 3 kind of memory, very fast memory,
so fast memory is based on delay lines, so information is kept by propagating in that kind of
line, it is implemented using a gas tube, you can see that there, so this is as the capacity of
18, the cement digits, so it could be called a register, but at that time, it didn't call that
register yet, then we have the fast memory, fast memory, what is it? It's just a drum, you have
actually two drums, fast means 7mg, so you see what, what fast is it, you could draw it on the
on the diagram, if the more slow to see if you are in line, so two drums, one for the data,
one for the program, so it's here that we have the other style because it's really separated,
the data from the program, one drum at 100 tracks, 20 sector, stirring, of course,
the same content as the register, so 18 digits, so decimal digits, we will see what is in,
so it's about 20 kilobytes and then third, the sort of level of memory, a slow memory is just
tapes, or tape was, it's neat tape, so it was a loop, you can see the loop here actually,
so the tape was just going there and back and forth, so they just had to pass the end with the
beginning, conception about 25 kilobytes, so it's about at that time the consumption of a smaller
street in the town, so it was very odd there to install some cooling otherwise it started to
also to have a problem with the dilatation and six-sided, okay logical architecture, so this is a
real picture, well just translated, so it's very high level, you see well you of course,
central control here, you have apart the drum with the program where you read the instruction
and then based on the instruction you will go into the other drum to take the data to write back
and forth the data and you can also use, well I call it arithmetic and logic unit but it's
was not the name, the name was in French group, calculators, calculating group, so it was really
the hardware that was able to perform computation and what could do, actually it could just
do this kind of operation, A times B plus C and also with the carry, the carry, yeah,
so you see there is something missing for arithmetic but don't we what is missing,
now we have minus is done using nine components, it's a good point,
divide yes, there is no divide, okay, so we will see or we do divide later,
okay for the data instruction, so I told you 18 digits, so at the very low level there was
still of course in kind of binary code it in decimal but it was not the user way, you can see
the encoding there, it's called B canary encoding, so it's well because zero is zero, one is one
but two or so two but then three becomes five four becomes eight, so it's a different encoding,
the ID is also used for the machine hypothesis that you use less power because you use less one
and also you don't you try to have to have a one not too close together because
good interfere I guess, so it's really the low level encoding, so I had some friends who
uncovered and they got that of course in my emulator but of course it does not help a lot,
you don't have any kind of code the error detection or correction, it's just more
playable to use that kind of coding and number representation, well for this talk I will just
focus on the floating point, you could also encourage fixed point and double precision if you
went but the presentation was like this you have a sign then the manufacturer is 15 number
supposed after the decimal point so it's zero dot then the manufacturer and then the
exponent you have a sign and you have two numbers so it means that you can go from
minus 10 to the 99 999 but actually 12 out of a flow they limited to 49 49
okay and the other way the other representation or also you could store a pair of
instruction in that 18 bytes or two two block of 9 number us five for the type of the instruction
and four for the for another right visually in that race could also represent a small number and of
course it means that if you have two uh two instruction in one one block only uh when the
address it will be addressable only uh well both instruction will only have one address so we can
not jump on the second one you just have kind of a pair anignment okay a register well
uh what's fun the documentation they use Greek letters for the for all different registers so it
means two things first really it was mathematician that we're using that and second the the the the
code was written on paper because you cannot type uh wheat lettering to a computer so it means
that all the design was done on paper and then manually compiled of course in my work I wrote a
compiler the compiler so I use other uh characters so I use uh ASCII characters like the value for
omega i a for alpha b for beta so basically you have an accumulator not called an accumulator
it's the ID it's called omega uh that's what's the entry and uh or two of the calculating group
you have two internal register called E and F uh also with fast access time so it's really the
core of the system you have also in this register that are can interfere with the addressing
and that are useful for of course uh say bars matrix and things like that and of course in
other register you have the signed register for the conditional jumps and of course something that
is looks like a program counter actually it points to the to the next infection
then switch on actually I told you already about the tracks the sector the sector are number five by five
so not all the address are valid so and you see the program counter to the points to the next
address so it means that address is fine okay I will go very fast on the on the
the infection set it's not too difficult to to understand you find your way when when you know
some assembly uh you you have of course for the arithmetic operation you can take source
from other register like the E and F register you can also an immediate uh value means that
the value that is specified here so this is the type of the instruction and the value that is here
usually is an address between that case is used really as a as a value that is of course only
part of the of the manufacturer is the fourth the fourth first digit of the manufacturer so this could
mean 0.9 actually if we use it as immediate value and from memory of course the most used
way to to load the tab it because then you can of load a full floating point and about the
operation of course you see plus minus plus minus you have another kind of multiplication
internal you're using in internal data so and you can also have it in normalize or not normalize
well let me that you you align the result again to avoid the zero after the digital point
accumulator you can of course white back in in the memory so this is writing back in memory
the two variants one will reset the accumulator and the other will keep the information that
accumulator you have the same for the E and F so you can write in E writing F or put the information
in the in the sign back and and the program and also all those stuff like alarms
we'll see why why we can have alarms I saw yeah what is very interesting is that the encoding you
have two two way to represent zero minus zero plus zero so it's used actually for for me some comparison
if you want to have a greater or equal or greater you have to change the order so it means that
minus a plus b is not the same as plus b minus a so yeah it's a bit of time so you have to do
not the pattern and when you read the code also you have to recognize those pattern and there
are some some exceptions so I leave it to you but does not work for for a lesser or equal b b if
b is zero there are some problems okay another subtlety is that we have a specific class of
operation that will actually alter the instruction that will come after so actually you have to read
the two instruction together to understand what is going on and typically it's operation that will
extract the mantis are find the sign change the exponent and things like that and it will affect
the operation the the information that comes in the accumulator by in the next instruction
we'll see on the example so about the way it works you say I told you well the code it on paper
like this so they write this to the doc what this many code with with the week later here and then
they translate it not quite totally in machine code it's almost machine code actually
you have to address here you have some some part of the instruction here maybe if it's a common part
and some other part there and using that you have most of the information you have only information
actually to to compile it you could compile it with an utility or do it by hand of course I have
done it in my my code and of course when you have that you simply meant that you don't have
all you need to to build a real application for example to compute ballistics you need all the
primitives like trigonometry exponentials and of course the division
so they have a set of minimal set of instruction you have function you can see them there and based on
that you can compute all the rest very quick look at a code so this this is part of the
the library that is in the run so this this code is about the inversion so it's it's a
dump of the of the memory so it's you see it's not not so not so long so if I decode it here you
you see the the instruction that is assembled in block the first part is just about you
information we will store the information in some some address here this address actually it's
the number we want to to invert actually for fourth one yeah for the division we multiply by the
inverse so the purpose is to compute the inverse and the number we want to invert we store it in
memory because we use it at the end again we see why and then we have one big block here that
is actually just computing a first raw estimate of the inverse and then we have iteration five
five iteration that looked really similar just just a number that change usually if you use Newton
the formula here that one with a equals to two and then at the end here you are guaranteed to have
the arms that's not very reliable so it could it could be a problem so what do they do here you see
you have air information that you have stored previously and you multiply you have the result
here the still in the in the in memory so you have the inverse here in the accumulator you
multiply by the number the original number so you compute x by what on x and you should be one so this
constant is one okay so I close and if it's not one what you do what do you do when what you try
again so you have three trials so you have the constant three here actually here and you have
actually a big loop this is a big loop you see if there is a problem if the check does not work
you try again three times if it does not work after three times then you have you raise an alarm
and then the human will come and we check where there is a problem in the in the machine okay
so sorry my time is up so this is the demo so you can see the convergence from one one one
court you have at the end you have you have here zero dot 25 and that's it thank you
thanks mister