Difference between revisions of "CSC103 Notes on von Neumann's architecture"
(Created page with "--~~~~ ---- <onlysmith> =Some notes on the movie "Computer Pioneers" on YouTube= <center><videoflash>wsirYCAocZk</videoflash></center> <br /> * The presenter is Gordon Bell, f...") |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 21: | Line 21: | ||
** Input | ** Input | ||
** Output | ** Output | ||
− | * The movie can be | + | * The movie can be stopped around the 43-minute time marker. |
+ | |||
+ | =A visual representation of the von Neumann's bottleneck= | ||
+ | |||
+ | <center> | ||
+ | [[Image:humanNail.jpg|300px]] | ||
+ | <br /> | ||
+ | <br /> | ||
+ | [[Image:footballField.jpg|300px]] | ||
+ | </center> | ||
+ | <br /> | ||
+ | What does the human nail (forget about the chameleon) and the football field have to do with the von Neumann's bottleneck? Answer: nothing. Except on the difference in scale. | ||
+ | |||
+ | We saw that the memory is a huge collection of boxes containing bits. We called these boxes ''words''. In general a word is partitioned into one or several bytes. A byte is a group of 8 bits and is used as a unit of data storage. Each memory word contains either instructions or data. We refer to data memory words in assembly language as ''variables''. The way the processor works, it constantly fetches an instruction from memory (RAM) and executes it. Most of the time, the instruction makes the processor transfer binary information between a variable in memory and the '''AC''' register. Executing an instruction takes '''one processor cycle'''. Processors operate at speeds in the order of Giga-hertz, billion cycles per second. | ||
+ | |||
+ | So back to the nail and the football field. Imagine that the '''AC''' register in the processor is as big as a human nail. The size of a word of memory would be the same, the size of a human nail. What about the memory which is measured in Gigabytes, or billions of byte. A billion human finger nails would cover... you have guessed, a football field. That's part of the von Neumann bottleneck. The fact that pretty much everything that is in memory has to be ''processed'', ''chewed up'' by the processor. And the processor contains only a tiny bit of storage. The whole field of finger nails has to get into the processor, one after the other. And they can basically do this one at a time. | ||
+ | |||
+ | |||
+ | |||
+ | =Attempts to deviate from the von Neumann architecture= | ||
+ | |||
+ | * One way to deviate from the von Neumann architecture is to multiply the number of processors in a computer. This is called parallel processing. One way to perform this has been adopted by companies such as Intel in creating several copies of the Pentium on the same chip. These copies are called ''cores''. Multicore processors have several cores on a single chip. Duocore refers to 2-core processors. ''Quad-core'' processors, four cores. Some MacPro computers have 8-core or 12-core processors. | ||
+ | |||
+ | * One problem, though: the more cores a computer has, the more there will be congestion when the processors need information from the memory. Fairly recent research at Sandia National Labs (http://spectrum.ieee.org/computing/hardware/multicore-is-bad-news-for-supercomputers) in 2008 has shown that the performance of multicore computers drops as the number of cores increases: that's bad news for Intel! | ||
+ | |||
+ | <center> | ||
+ | [[Image:MultiCorePerformance.jpg]] | ||
+ | </center> | ||
</onlysmith> | </onlysmith> | ||
Latest revision as of 09:39, 22 February 2012
--D. Thiebaut 15:55, 21 February 2012 (EST)