In the lecture we are told about the very basics about CPU. However after the introductory part I found that there are still some things I don't understand too well or which were not really addressed in detail in the lecture.

When we talk about CPUs and micro commands in lecture, we are mainly looking at the following graphic (or some variation) of it, therefore I would explain below the image, what we have:


The picture in fact shows CPU with all the possible commands on the left. In one tact you submit a signal of 21 bits to your CPU that triggers the respective points the little red arrows are pointing at. (I assume you understand enough to understand the graphic even with no proper knowledge of German. If thats not the case, I include a small dictionary + key below)

  1. I trigger the bits: 0, 2,6, 12 (keeping all others 0) and as a result: The values stored in the registers A and C swap. But how does this happen without being information lost? I assume all points of the computer receive their bit respective bit value at almost the same time, however how does the CPU guarantee that the value in C is not overwritten before it sends its value to A?

  2. Assume there are some values stored in A and B. Assume further I am evil and I trigger: 2, 5 and 6. What happens? With the currently, given knowledge in the lecture I cannot answer that. Is this even definitely answerable?

  3. Is there a certain meaning to the green triangles? It looks like a NOT-Gate without its small circle or a tri-state buffer. The latter seeming to me the most likeliest.

As always any constructive comment/answer is appreciated. Thank you in advance.

Dictionary for reference:

A, B, C, D and E are registers. Eingabe = Input, vom Speicher = from Memory, zum Speicher = to the memory, Ausgabe = output, Wähle = Choose, Lade = load, Springe = jump, Springe falls = jump, if

  • 1
    $\begingroup$ Macros are handled in the translation of assembler into machine code via some kind of macro processor: en.wikipedia.org/wiki/Assembly_language#Macros. The CPU does not evaluate macros, only machine code. $\endgroup$ Jun 12 '16 at 19:58
  • $\begingroup$ This answers exactly how my question (?) or supposed to help me? $\endgroup$
    – Imago
    Jun 12 '16 at 20:04
  • $\begingroup$ Well, it answers the question before you changed macro to micro. $\endgroup$ Jun 12 '16 at 20:13
  • $\begingroup$ A more realistic ALU design might have the four control signals be select(A,0) (A side), select(B,0) (B side), select(B,~B) (B side), and carry-in with the result being the sum of the A side and B side (with the carry-in), providing: -1 [0000],0,0,1,1-B[0100],-B,B,B+1,A-1[1000],A,A,A+1,A-B+1[1100],A-B,A+B,A+B+1. Thus all signals would produce a sensible result. As presented, if the instruction decoder providing the control signals did not prohibit nonsensical signals, the behavior is not well-defined. Multiple matchs on CAMs is a similar problem. $\endgroup$ Jun 13 '16 at 0:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.