Milen Dimitrov HW1
Milen Dimitrov HW1
1. Research and Reading Assignment: [ min two pages total of the whole summary ]
Read and summarize the four papers located in the reading section of unit 1.
1.Reading Summary
1.1 Architecture of the IBM System/360
Reading this paper was very pleasant and enlightening, showing the way of thinking of the
computer pioneers. I believe it was included in our first homework to show the difference, the
evolution of the meaning of the Computer Architecture subject. And it is starting with a note of
its first word - Architecture* [1] - “ The term architecture is used here to describe the attributes of
a system as seen by the programmer, i.e. the conceptual structure and functional behaviour, as
distinct from the organisation of the data flow and controls, logical design and the physical
implementation.” At that time the term “architecture” was including only what the programmer is
seeing - CPU, instructions, registers, buses, memory organization, IO and etc, while today we
expanded this scope much more, to include also the cost, power, cooling, communication, chip
design, clustering, parallelization.
The paper shows the changing of the computer paradigma. Until that time computers were
specialized - scientific, business, military. And were completely incompatible and almost
unupgradable. System/360 was a revolutionary design, IBM made a giant advance in the field of
Computer Architecture, making the first universal and upgradable computer. We can judge how
giant this project was by the cost - it was estimated at 5B$, half of the Manhattan project,
equivalent to over 300B today’s $.
The objectives that IBM achieved were to make computers more universal and easier, as their
usage and importance increased, dramatically growing the size of memory, 2 orders of
magnitude, IO and processing power, new storage technologies, drums, tapes and disks. They
sacrifice backward compatibility, in the name of future compatibility. Intermodal compatibility
was an important feature, software could run on different size computers. Simplifying made the
system easier to use, shortened the turn around time and increased the total throughput. The
new machine was capable of supervising itself automatically, used for real time and multi
program and time-share modes. Float point precision was increased. Hardware was abstracted,
so programers could write their programs without knowledge about it, and easier adapt to
different IO devices.
Difficult decisions were made about data format and sizes - 4, 6 or 8 bits , or 36/48/64 bits for
the floating point, in the time when the hardware was very big and expensive, ( 200kb were as
heavy as 600lb at the time ). Interestingly, stack was reviewed very deeply and found not
efficient, and was not implemented. Address register organisation was implemented as more
flexible.
Interrupts for IO were implemented. That permitted creating many IO channels at virtually no
cost, which allowed expanding external memory and saving core memory.
The most important contributions of this design were the separation of the logical structure and
the physical implementation, optimization of the common tasks that are most used ( IMHO, here
is the origin of the Amdahl’s law ) , overall structure of the data, instruction, protection and
interrupts, later becoming industry standards.
1.3 “The Case of the Reduced Instruction Set Computer” and the
DEC comment on it.
I’d like to review these 2 papers together, as they are tightly related to each other. While
it is easy to judge now when we know the history 40 years later, I will try to be objective.
The original paper treats the effect of the complexity of the instruction set, using VAX11
as an example, and DEC is answering in a mostly defensive mood. At first I want to say
that it looks like at that time the term “Complex Instruction” was not well defined. Or not
perhaps not well understood by DEC engineers. While it was not explained explicitly by
Patterson and Ditzel, DEC engineers first argument is how to distinguish between
Complex and Reduced. Today it is well established that Complex instructions are when
arithmetic or logical instruction is using directly memory as operand, and not the
number of instructions, VAX-11 is CISK even though there are 11 instructions only,
while some RISK processors may have almost 200 instructions.
Paterson and Ditzel got very good points about the reasons for increased complexity,
esp the marketing strategy reason ( which is still happening and very actual ).DEC
answers to this are just silly and naive denying the obvious fact. The argument about
complex instruction usage is also interesting. In the original paper are provided some
statistical facts, but only about the # of times that instructions are used, not the time that
they consume/save. DEC is going deeper in that direction and provides valid
arguments, facts and data, but still not making completely fair comparisons.
In the argument about code density DEC has a good argument about the need for
dense and efficient code, which is valid even more today, but they give it
unproportionally higher importance than it deserves, the amount of the code is much
smaller % than the data.
When arguing about complex microcode errors, DEC assumes that when microcode is
simplified, errors will be shifted to the user code, but failing to recognize that user code
errors are much easier to fix and debug, and their scope is much limited.
When talking about RISK and VLSI, DEC chose just to say that there are no metrics
and it's unconvincing. Patterson and Ditzel, even without the knowledge of the current
level of technology, catched the right reasons - design time, speed, better usage of the
silicon ( for cache and pipelines, that is used universally, rather for rarely used complex
instruction ).
In conclusion, I can say that at the end of the company , 1990, DEC accepted the facts.
After their decline, finally in 1990 they released their RISC architecture - ALPHA , which
was a huge success , but not enough to save the company. And currently almost all
CPU are RISC , even the new Intel X86 cpus which are emulating CISC ISA, are
actually RISC underneath and running microcode to emulate CISC.
Calculations:
1. Assumptions - Motherboard, NICs, and all peripheral consumption is ignored, Power
supplies are assumed 80% efficiency (from Q1.4a). Assuming HDD is 60% of the time
idle ( from Q 1.4b ) .
2. Total Consumption of the HDD is 40% * 7.9W + 60% *4W = 0.4*7.9+0.6*4=5.56W
average power consumption of 7200rpm HDD
3. Total consumption of the system ( 1 P4 cpu +1 DIMM + 1HDD ) = 66W + 2.3W + 5.56W
= 73.86W
4. Consumption from the power grid P(AC) = P(DC) / Power_efficiency =
73.86W/0.8=92.33W total consumption on average.
5. 14kW ( 14000W) / 92.33W = 151 servers .
6. Which is more than enough, because one standard rack is 42U tall, extended racks up
to 56U.
7. To make it a bit closer to reality we should add ~100W for the motherboard , NIC and the
other controllers, at least 3 DIMM ( it's unlikely to run a server with 1 DIMM, and very
unusual to run it with 2 only, default HP DL360G4 is delivered with 2 ) , to populate 1
DIMM in each of the 3 channels , to maximize the performance [1] , and efficiency 73%,
more likely a system will consume ~250W , then 14000W/250W= 56Servers, ~ 1 rack
cabinet.
8. If maximum populated with 2 CPU , max memory and HDD, its 585W by spec - 24
servers.
References :
1. G.M. Amdahl, G.A. Blaauw, F.P. Brooks “IBM J. Res Develop. Vol 44 No, ½
January/March 2000, page 21
2. https://support.hpe.com/hpesc/public/docDisplay?docId=c00374943 , accessed
07/14/2021