diff --git a/Computer_Architecture/CPU/CPU_architecture.md b/Computer_Architecture/CPU/CPU_architecture.md index 365f34a..8abc750 100644 --- a/Computer_Architecture/CPU/CPU_architecture.md +++ b/Computer_Architecture/CPU/CPU_architecture.md @@ -34,7 +34,7 @@ There are five main types of register in the CPU: ## Arithmetic Logic Unit -This is the hub of the CPU, where the binary calculations occur. It comprises [logic gates](/Electronics_and_Hardware/Logic_gates/Logic_gates.md) that execute the instructions passed from memory. This is where the data stored by the registers is acted upon. +This is the hub of the CPU, where the binary calculations occur. It comprises [logic gates](/Electronics_and_Hardware/Digital_circuits/Logic_gates.md) that execute the instructions passed from memory. This is where the data stored by the registers is acted upon. It can execute arithmetic on binary numbers and logical operations. This is where you will find operations conducted by adders and half-adders etc. @@ -58,7 +58,7 @@ The CPU's [controller](/Hardware/Chipset_and_controllers.md). It takes the instr Whilst modern CPUs and multithreading make it appear[] as though the CPU is capable of running multiple processes at once, access to the CPU is in fact sequential. The illusion of simultaneous computation is due to the fact the processor is so fast that we do not detect the sequential changes. For this to happen, the CPU needs to have a means of scheduling and sequencing processes. This is made possible through the system clock, hence when talking about the speed of the CPU we do so with reference to _clock speeds_ and the _clock cycle_. -The clock's circuitry is based on a quartz crystal system like that used in watches. At precisely timed intervals, the clock sends out pulses of electricity that cause bits to move from place to place within [logic gates](/Electronics_and_Hardware/Logic_Gates/Logic_gates.md) or between logic gates and [registers](/Computer_Architecture/CPU/CPU_architecture.md#registers). +The clock's circuitry is based on a quartz crystal system like that used in watches. At precisely timed intervals, the clock sends out pulses of electricity that cause bits to move from place to place within [logic gates](/Electronics_and_Hardware/Digital_circuits/Logic_gates.md) or between logic gates and [registers](/Computer_Architecture/CPU/CPU_architecture.md#registers). Simple instructions such as add can often be executed in just one clock cycle, whilst complex operations such as divide will require a number of smaller steps, each using one cycle. diff --git a/Computer_Architecture/CPU/Fetch_decode_execute.md b/Computer_Architecture/CPU/Fetch_decode_execute.md index a17248f..dadb267 100644 --- a/Computer_Architecture/CPU/Fetch_decode_execute.md +++ b/Computer_Architecture/CPU/Fetch_decode_execute.md @@ -37,7 +37,7 @@ Once the CPU has received the instruction, the CPU controller chip analyses it t ## Execute Now the command will be executed. The operand is copied to the Memory Address Register and then passed to the Memory Data Register and the command is carried out by the ALU. -The activities of ALU are covered in [CPU Architecture](/Computer_Architecture/CPU/CPU_architecture.md#arithmetic-logic-unit) and the notes on [Logic Gates](/Electronics_and_Hardware/Logic_gates/Logic_gates.md). +The activities of ALU are covered in [CPU Architecture](/Computer_Architecture/CPU/CPU_architecture.md#arithmetic-logic-unit) and the notes on [Logic Gates](/Electronics_and_Hardware/Digital_circuits/Logic_gates.md). ## Store diff --git a/Electronics_and_Hardware/Digital_circuits/Clock_signals.md b/Electronics_and_Hardware/Digital_circuits/Clock_signals.md index cbdf1b9..905de01 100644 --- a/Electronics_and_Hardware/Digital_circuits/Clock_signals.md +++ b/Electronics_and_Hardware/Digital_circuits/Clock_signals.md @@ -1 +1,13 @@ +--- +categories: + - Computer Architecture + - Electronics + - Hardware +tags: [logic-gates, binary, memory] +--- + +# Clock signals + +When using multiple [memory devices](/Electronics_and_Hardware/Digital_circuits/Latches.md) in a complex digital circuit we need a way to ensure that all the bits are set at the same time. In the examples so far of [adders](/Electronics_and_Hardware/Digital_circuits/Half_adder_and_full_adder.md) and [latches](/Electronics_and_Hardware/Digital_circuits/Latches.md) + ![](/img/clock_pulses.png) diff --git a/Electronics_and_Hardware/Digital_circuits/Creating_memory_with_NAND.md b/Electronics_and_Hardware/Digital_circuits/Creating_memory_with_NAND.md index d0f64ea..59faaba 100644 --- a/Electronics_and_Hardware/Digital_circuits/Creating_memory_with_NAND.md +++ b/Electronics_and_Hardware/Digital_circuits/Creating_memory_with_NAND.md @@ -9,7 +9,7 @@ tags: [logic-gates, binary, memory] # Creating memory with NAND gates -The [logic circuit](/Electronics_and_Hardware/Digital_circuits/Digital_circuits.md) below demonstrates how memory can be created using [NAND](/Electronics_and_Hardware/Logic_gates/Logic_gates.md#nand-gate) gates. A single bit is stored in memory. +The [logic circuit](/Electronics_and_Hardware/Digital_circuits/Digital_circuits.md) below demonstrates how memory can be created using [NAND](/Electronics_and_Hardware/Digital_circuits/Logic_gates.md#nand-gate) gates. A single bit is stored in memory. ![](/img/nand_latch_logic_circuit.png) Interactive version of circuit: diff --git a/Electronics_and_Hardware/Digital_circuits/Digital_circuits.md b/Electronics_and_Hardware/Digital_circuits/Digital_circuits.md index 6fb5618..760c74d 100644 --- a/Electronics_and_Hardware/Digital_circuits/Digital_circuits.md +++ b/Electronics_and_Hardware/Digital_circuits/Digital_circuits.md @@ -10,7 +10,7 @@ Ultimately every process in a computer is the product of a digital [circuit](/El Analogue circuits work on the basis of real continuous phenomena in the world: charges and currents. As a result, the key properties of a circuit - voltage, current and resistance - can vary over a wide range of values. This is the reason that we require components like batteries and resistors: to control the natural flow of current and ensure that it only runs within desired parameters. -In a standard electrical circuit, voltage, current and resistance can vary over a wide range of values however in the binary context we want to deal with discrete values (zeros and ones) which can be fed into the various [logic gates](/Electronics_and_Hardware/Logic_gates/Logic_gates.md). +In a standard electrical circuit, voltage, current and resistance can vary over a wide range of values however in the binary context we want to deal with discrete values (zeros and ones) which can be fed into the various [logic gates](/Electronics_and_Hardware/Digital_circuits/Logic_gates.md). We therefore need a way to represent 'on' and 'off' as single quantities. We do this by stipulating that a given voltage corresponds to 'on' (high) and another corresponds to 'off' (low). Of course these are not really discrete values since voltage is inherently analogue but we basically binary-encode them. Formally 'on' has a voltage of 1 and 'off' has a voltage of 0. In reality 'on' tends to be within 2-5V depending on the circuit design and anything between 0 - 0.8V is considered off. diff --git a/Electronics_and_Hardware/Digital_circuits/Half_adder_and_full_adder.md b/Electronics_and_Hardware/Digital_circuits/Half_adder_and_full_adder.md index 29d4bc9..1a1dd67 100644 --- a/Electronics_and_Hardware/Digital_circuits/Half_adder_and_full_adder.md +++ b/Electronics_and_Hardware/Digital_circuits/Half_adder_and_full_adder.md @@ -9,7 +9,7 @@ tags: [logic-gates, binary] ## Binary arithmetic -The half adder and full adder are components of digital circuits that enable us to carry out binary addition. Using adders and half adders we can add two binary numbers together. Adders are a type of [integrated circuit]() comprising certain [logic gates](/Hardware/Logic_Gates/Logic_gates.md) where the arrangement allows for the representation of the addition of bits. +The half adder and full adder are components of digital circuits that enable us to carry out binary addition. Using adders and half adders we can add two binary numbers together. Adders are a type of [integrated circuit]() comprising certain [logic gates](/Hardware/Digital_circuits/Logic_gates.md) where the arrangement allows for the representation of the addition of bits. ### Example addition @@ -68,7 +68,7 @@ We can represent this with a simple truth-table: | 1 | 0 | 1 | 0 | | 1 | 1 | 0 | 1 | -We can see that the sum bit column replicates the truth-conditions of [XOR](/Electronics_and_Hardware/Logic_gates/Logic_gates.md#xor-gate): +We can see that the sum bit column replicates the truth-conditions of [XOR](/Electronics_and_Hardware/Digital_circuits/Logic_gates.md#xor-gate): | P | Q | P V Q | | --- | --- | ----- | @@ -77,7 +77,7 @@ We can see that the sum bit column replicates the truth-conditions of [XOR](/Ele | F | T | T | | F | F | F | -And the carry-out bit replicates the truth conditions of [AND](/Electronics_and_Hardware/Logic_gates/Logic_gates.md#and-gate): +And the carry-out bit replicates the truth conditions of [AND](/Electronics_and_Hardware/Digital_circuits/Logic_gates.md#and-gate): | P | Q | P & Q | | --- | --- | ----- | diff --git a/Electronics_and_Hardware/Digital_circuits/Latches.md b/Electronics_and_Hardware/Digital_circuits/Latches.md index 8d148f4..9800b5e 100644 --- a/Electronics_and_Hardware/Digital_circuits/Latches.md +++ b/Electronics_and_Hardware/Digital_circuits/Latches.md @@ -44,7 +44,7 @@ _The representation of an SR Latch in a digital circuit diagram_: ## Creating a latch circuit -The circuit diagram latch symbol obviously encapsulates more complex functionality that occurs at the sub-circuit level. We will demonstrate how this functionality can be achieved with two [NOR](/Electronics_and_Hardware/Logic_gates/Logic_gates.md#nor-gate) gates. +The circuit diagram latch symbol obviously encapsulates more complex functionality that occurs at the sub-circuit level. We will demonstrate how this functionality can be achieved with two [NOR](/Electronics_and_Hardware/Digital_circuits/Logic_gates.md#nor-gate) gates. The two gates are in a **cross-coupled configuration**. This basically means that the wires are crossed back on themselves such that the output of one is also an input of the other at a single stage in the sequence. diff --git a/Electronics_and_Hardware/Digital_circuits/Transistors.md b/Electronics_and_Hardware/Digital_circuits/Transistors.md index 5dcd711..2f350db 100644 --- a/Electronics_and_Hardware/Digital_circuits/Transistors.md +++ b/Electronics_and_Hardware/Digital_circuits/Transistors.md @@ -58,10 +58,10 @@ When the voltate at the base is low (in the diagram it is grounded to ensure thi With the basic element of the transistor established, we can combine transistors to create logic gates. A logic gate is a combination/sequence of transistors where the logical function is represented by the characteristic input and output voltages. -For example to create an [AND](/Electronics_and_Hardware/Logic_gates/Logic_gates.md#and-gate) gate we would have two voltage inputs going into two transistors that are connected in sequence. The two transistors create a continuous line going from the collector of one to the emitter of the other. If either voltage input is low then the voltage of the combined line is low (equivalent to the circuit being broken) and there is no current flowing. +For example to create an [AND](/Electronics_and_Hardware/Digital_circuits/Logic_gates.md#and-gate) gate we would have two voltage inputs going into two transistors that are connected in sequence. The two transistors create a continuous line going from the collector of one to the emitter of the other. If either voltage input is low then the voltage of the combined line is low (equivalent to the circuit being broken) and there is no current flowing. ![](/img/and-transistor.png) -Below, an [OR](/Electronics_and_Hardware/Logic_gates/Logic_gates.md#or-gate) has been constructed with transistors. If a voltage is applied to the base of either transistor, the current reaches the V-out terminal. +Below, an [OR](/Electronics_and_Hardware/Digital_circuits/Logic_gates.md#or-gate) has been constructed with transistors. If a voltage is applied to the base of either transistor, the current reaches the V-out terminal. ![](/img/or-transistor.svg)