From 836c0c386f8360dc1c97883398693a8bd5b7900e Mon Sep 17 00:00:00 2001 From: Justin Tan How Yuan Date: Mon, 10 May 2021 17:37:18 +0100 Subject: [PATCH] Somewhat completed Processor Architecture, Microprogrammed CU could have more details but I'm tired. --- .../part6.assets/image-20210510155847523.png | Bin 0 -> 97721 bytes cs132/part6.md | 115 +++++++++++++++++- 2 files changed, 109 insertions(+), 6 deletions(-) create mode 100644 cs132/part6.assets/image-20210510155847523.png diff --git a/cs132/part6.assets/image-20210510155847523.png b/cs132/part6.assets/image-20210510155847523.png new file mode 100644 index 0000000000000000000000000000000000000000..b68680d192c377109afeebcf92214253d4be6b53 GIT binary patch literal 97721 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%0D;HCEgj_Kf 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 Vczb2jM+Lvk#!NImZa6dGe*xGxwQ2wW literal 0 HcmV?d00001 diff --git a/cs132/part6.md b/cs132/part6.md index 3bad37ef..92c7c577 100644 --- a/cs132/part6.md +++ b/cs132/part6.md @@ -21,22 +21,125 @@ Considerations: - Your subsystems will have to communicate – we do this with shared busses and three-state buffers. - How many arithmetic instructions do you have? This directly affects the number of function selects your CU must have. E.g. Lets say your processor has 4 arithmetic instructions: `CLEAR`, `DEC1`(decrement), `INC1`, `ADD#somevalue`. Then you will need 2 function selects from your CU to your ALU to specify which arithmetic instruction the ALU is executing. -## Instructions and Controls Signals +# Micro and Macro Instructions +> **Macro instructions** are the set of mnemonics that each represent a specific instruction that your processor understands. These are assembled into opcodes that your CU can take to “know” which sequence of **micro instructions** to carry out. +> +> Each **micro instruction** corresponds to a specific signal that your CU can assert (we call these control actions), and when carried out in the right sequence, the final result/effect is that of the **macro instruction**. +## Clock cycles -# Micro and Macro Instructions +The number of clocks a **macro instruction** takes in total is technically the time the CU takes to execute the instruction. Since the value of the data at the in our registers/certain outputs don’t change unless there is a clock supplied, we can further categorise macro instructions into the number of **clock cycles or control steps** needed. + +What this implies is that certain micro instructions can be **executed simultaneously**, as long as their control actions are independent of one another (so their inputs/outputs don’t depend on each other and hence a clock/enable signal). + +## Representation of Instructions + +We know that instructions have an **opcode**, may have an **operand**, and stored at a particular address in memory which the PC points to. The example below shows how instructions may look like in memory for a processor with a 32x8-bit Main Store, 5-bit PC, 3-bit opcode: + +| Address | Mnemonic | Opcode Operand | +| ------- | -------- | -------------- | +| 0 | `CLEAR` | `000` `00000` | +| 1 | `LOAD 5` | `110` `00101` | +| 2 | `ADD #8` | `010` `01000` | +| … | – | – | + +It is important to note that this is **just an example**; the key takeaway is to a better idea of how **instructions are represented in memory**. + +> ❗❕ Remember that before and in between each instruction shown in the example above, there is an **implicit fetch step** (recall FDE cycle). +> + +In RTL this would be: + +1. `[MAR] <- [PC]` +2. `[MDR] <- [MS(MAR)]` +3. `[IR] <- [MDR]` +4. `[PC] <- [PC] + 1` + +Note that the 4th step is actually a macro-step because the processor will have to have some mechanism of incrementing the PC, which can be done using the ALU or something else – it all depends on the processor architecture. What’s **crucial** is that you are **aware of all these nuances** and have them in mind when dealing with this topic. # Control Unit Design +**Macro design of the CU** – concerning its inputs and outputs. + | Requirements of CU | Implication | | ------------------------------------------------------------ | ------------------------------------------------------------ | | Needs to operate at or near clock speed of microprocessor | Needs to have a clock input. | -| Needs to be aware of the state of the microprocessor | Has to be connected to the CCR and its flags. | -| Needs to take an Opcode. | Needs an input for Opcode. | +| Needs to be aware of the state of bits in the CCR | Has to be connected to the CCR and its flags. | +| Needs to take opcode from the IR | Needs an input for Opcode. | | Needs to translate opcode into appropriate sequence of processes to essentially execute opcode instructions. | Needs `Enable`, `Clock`, and `Read/Write` lines to all the components/subsystems to assert the sequence of signals to carry out the opcode. | -| Function selects | | +| Needs to specify which arithmetic operation to carry out. | Needs to have Function select lines leading to the ALU. The number of function selects = $$log_2(A)$$, where $$A$$ is the number of arithmetic operations. | + +The CU executes micro instructions by asserting a sequence of enable and clock signals which have to abide by a **timing diagram** that depends on the particular **macro instruction**. Once we have this timing diagram for every opcode, we can form a truth table that models each macro instruction. This truth table helps us distinguish between control rounds/clock cycles needed and we can use it to help design our CU. + +**There are two main approaches to control unit design.** + +> **Hardwired / “Random Logic”.** Design the CU as a combinatorial logic circuit, transforming its input signals into a set of output signals based on the truth table we mentioned above. +> +> **Microprogrammed.** Each machine instruction is turned into a sequence of primitive microinstructions, which form a microprogram, stored in a ROM called the microprogram memory. + +## Hardwired CU + +The dominant technique, since roughly 1980s, for implementing control units in RISC processors. + +| Component | Function | +| ------------------------------------------------------- | ------------------------------------------------------------ | +| **Sequencer** – takes clock input of our microprocessor | Regulates/aligns the operation of the combinatorial logic circuit in the CU with the control steps/rounds we have for each macro instruction. These regulated signals should ideally match the clock frequency. | +| **Instruction Decoder** | Depending on the opcode, send a signal to a certain path that corresponds to a particular macro instruction. | +| **Fetch/Execute flip-flop** | Works together with the sequencer to regulate control rounds. It asserts when a control round starts and ends, essentially ensuring that the sequencer is in sync. | + +> **Advantages.** Fast (operates as fast as logic gates). +> +> **Disadvantages.** +> +> - Complex hardware makes it difficult to design and test – many interconnections. +> - Inflexible as it is difficult to change the design if new instructions are added. +> - Long design time. + +## Microprogrammed + +The dominant technique for implementing CUs, peaking in 1970s, for CISC processors. + +| Terminology | Description | +| ------------------------ | ------------------------------------------------------------ | +| **Microprogram routine** | Describes how to generate the CU outputs for one macro instruction. Made up of micro instructions and stored in microprogram memory (a ROM) | +| **Microaddress** | A location within microprogram memory | +| **MicroPC** | The CU’s internal program counter | +| **MicroIR** | Internal IR used to hold current micro instruction | +| **Microinstruction** | Holds the CU output values and other fields to control the microprogram flow. | + +> **Advantages.** +> +> - Ease of design and implementation +> - Flexibility of design allows families of processors to be built +> - Simple hardware compared to hardwired implementations +> - Microprogram memory can be reprogrammed for new instructions. +> +> **Disadvantages.** +> +> - Slower than hardwired implementations. # CISC vs RISC -Complex Instruction Set Computers and Reduced Instruction Set Computers. \ No newline at end of file +*Complex Instruction Set Computers vs Reduced Instruction Set Computers.* + +**Some history.** Initially (1970s), the control store was much faster than main memory and therefore microprogrammed overhead was only 50% of execution time. As hardware got more advanced, both became faster but the control store lost its advantage and was about as fast as main memory. This led to microprogrammed overhead of over 80% of execution time. So even though processors were becoming more “capable” with a growing instruction set size, these were not actually enabling people to build better, more performant code. + +Publishing results by Fairclough et al. in IEEE Micro (1982) supported this as it showed that certain groups of instructions are far more commonly used than others. + +| Instruction Group | Frequency of Use | +| ------------------------------------------------- | ---------------- | +| Data movement (`move`, `store`, `load`) | 45.28% | +| Program flow control (`branch`, `call`, `return`) | 28.73% | +| Arithmetic (`add`, `sub`) | 10.75% | +| Compare (`cmp`) | 5.92% | +| Logical (`and`, `or`) | 3.91% | +| Shift | 2.93% | +| Bit manipulation | 2.05% | +| Miscellaneous | 0.44% | + +Many people decided to take a fresh look at the situation and a paper by Patterson and Ditzel coined the two terms, RISC and CISC. They proposed a fresh start – a new approach to building our microprocessors (RISC) that did away with backward compatibility. + +This sparked a split in industry, where **ARM** is the main proponent for RISC – their approach was to reduce the set of instructions but retain efficiency and synergy between control signal and control steps, sacrificing backwards compatibility. + +**Intel** took a different approach and serves a market which wants backwards compatibility. They took a hybrid approach where the simplest and most commonly used instructions are executed by a RISC core and the more complex ones are **microprogrammed** (CISC). Performance is competitive and legacy software can still run. \ No newline at end of file