CHAPTER 6: Computer System Organisation
1.
The Computer System's Primary Functions
All computers, from the first room-sized mainframes, to today's powerful desktop, laptop and even hand-held PCs, perform the same general operations on data. What changes over time is the data handled, how it is handled, how much is moved around, and how quickly and efficiently it can be done.
The basic functions that a computer can perform are: 1. Data processing
2. Data storage 3. Data movement 4. Control
1.1 Data Processing (Computation)
When you think about a computer and what it does, you of course think that it computes. And this is indeed one part of its job. Computing is really another term for "data transformation"--changing data from one form to another. The computer spends a great amount of its time doing exactly this: performing math operations, and translating data from one form to another
1.2 Data Storage
The computer system stores different types of data in different ways, depending on what the data is, how much storage space it requires, and how quickly it needs to be accessed. This data is stored in its "short term" memory and its "long term" memory.
The computer system's main memory ( or primary storage) holds data that you or the computer are working with right now. This is the computer's "short term memory", and is designed to be able to feed data to the processor at high speed so the processor isn't slowed down too much while waiting for it. However, this short-term memory disappears when the computer is turned off.
Longer-term storage, referred to as secondary storage, may consist of magnetic tapes,
magnetic disk, optical memory device, or similar device, where data is stored permanently in the form of files, ready for you to retrieve when you need it. When you want to use your computer program, for example, the computer loads the instructions that are stored on the hard disk that tell the computer how to run it, from long-term storage (your hard disk) into short-term memory.
1.3 Data Movement
The computer also controls the movement of data from place to place. It reads the data you type on the keyboard, moves it into memory and eventually displays it on the screen or stores it in a file. This movement is called input/output or I/O and is how the computer talks to you as well as devices that are connected to it.
Moving data between machines is also an important part of modern computing. The computer uses networking components, modems and cables to allow it to communicate with other machines.
1.4 Control
The computer system must control the above three functions. Within the computer, a control
2.
Main Structural Component of a Computer System
The main elements associated with a computer system are as follows:(i) Central Processing Unit (CPU) - data processing and control (ii) Main Memory (primary storage) - stores data
(iii) Secondary Storage - stores permanent data
(iv) Input and Output (I/O) devices - moves data between the computer and its external environment
(v) System interconnection (Busses)- provides mechanism for communication among various components
I/O Unit Microprocessor
(ALU + CU) Main Memory (ROM and RAM)
Input Devices -Tape -Disc -Teleprinter -Data from transducers Secondary Storage Printer Visual Display Unit (VDU) Keyboard
Input from keyboard
Output to printer Output to VDU Microcomputer System Output Devices
2.1
CPU
The Central Processing Unit (CPU) is the central component of the PC. This vital component is responsible for every single thing the PC does. It determines, at least in part, which operating systems can be used, which software packages the PC can run, how much energy the PC uses, and how stable the system will be, among other things. The processor is also a major
determinant of overall system cost: the newer and more powerful the processor, the more expensive the machine will be.
The underlying principles of all computer processors are the same. Fundamentally, they all take signals in the form of 0s and 1s (binary signals), manipulate them according to a set of
instructions, and produce output in the form of 0s and 1s. The CPU has three main units:
• Arithmetic and Logic Unit (ALU): Performs arithmetic operations and Performs logical operations. Performs arithmetic and logical operations. For example, it can add together two binary numbers either from memory or from some of the CPU registers.
• Control Unit: controls the action of the other computer components so that instructions are executed in the correct sequence.
• Registers - Temporary storage inside CPU. Registers can be read and written at high speed as they are inside the CPU
Control Unit Arithmetic Logic Unit Main Memory System Clock Input Port Output Port CPU Registers Figure 2: CPU
The figure below shows an example of the organisation of an accumulator based CPU organisation.
Memory (RAM)
MAR MDR
CPU
ALU – Arithmetic Logic Unit PC – Program Counter IR – Instruction Register
ACC - Accumulator
MAR – Memory Address Register MDR – Memory Data Register ALU
PC IR
ACC
Address bus data bus
Figure 3: Example 1 Accumulator ALU
In the following example, there are two input registers A and B and one ALU output register which can be stored back into a register.
ALU A + B A B A+B A B
registers
ALU input registers
ALU output register ALU input bus
If we take the example of addition performed by the ALU, in a high level program we may have one statement, such as
Z = x + y;
Where x, y, z are all integer variables in memory and lets assume that x = 7, and y=5; and inititally z = 0;.
In order to perform the addition of the following machine code instructions may be used for this example:
1) LOAD value of x from memory into a register A in CPU 2) LOAD value of y from memory into a register B in CPU 3) ADD register A and register B
4) STORE result to memory location z Exercise:
What steps might be involved for the example in Figure 3: Example 1 Accumulator ALU?
Most instructions can be divided into one of two categories: register-memory or register-register. Register-memory instructions allow memory words to be fetched into registers, where they can be used as ALU inputs, or they allow registers to be stored back into memory.
A typical register-register instruction might be ADD register A to register B. Instruction Execution
Figure 5: Machine CycleControl Unit repeats the four operations of the Machine Cycle 1) Fetching next program instruction from memory
2) Decoding program instructions into commands the computer can process 3) Executing - processing the commands
2.2 Data Storage / Memory
The processor is the brain of the computer. All fundamental computing takes place in the processor. Other components contribute to the computation (by doing such things as moving data in and out of the processor), but the processor is where the fundamental action takes place.
The memory in a computer system is of two fundamental types:
Main memory: used to store information for immediate access by the CPU. Main Memory is also referred to as Primary Storage or Main Store.
• closely connected to the processor.
• the contents are quickly and easily changed.
• holds the programs and data that the processor is actively working with. • interacts with the processor millions of times per second.
Secondary storage: devices provide permanent storage of large amounts of data. Secondary storage is also called: secondary memory, external memory, backing store or auxiliary storage. This storage may consist of magnetic tapes, magnetic disk, optical memory device, or similar device.
• connected to main memory through the bus and a controller.
• the contents are easily changed, but this is very slow compared to main memory. • used for long-term storage of programs and data.
• The processor only occasionally interacts with secondary memory.
2.2.1 Main Memory
Main memory is where programs and data are kept when the processor is actively using them. When programs and data become active, they are copied from secondary memory into main memory where the processor can interact with them. A copy remains in secondary memory. Main Memory may be visualised as a set of labelled slots called memory locations or memory
cells. Each memory location holds one data word and is designated a unique address.
Addresses are binary words which are generally interpreted as numbers starting at number 0 and go up one for each successive memory location. Memory locations can be used to store both data, such as characters and numbers, and program instructions.
The usual convention when drawing block diagrams of memory is to have the lowest memory location at the bottom and the highest memory address at the top, although not all
manufacturers follow this convention.
ADDRESS CONTENT M A data word M-1 A data word M-2 A data word M-3 A data word : : : : : : 6 A data word 5 A data word 4 A data word 3 A data word 2 A data word 1 A data word 0 A data word
Figure 6: Block Diagram of Memory
The CPU can directly access data stored in Main Memory. When a memory location is accessed (READ), the contents of the memory location are unchanged (an exact copy of the contents of that location is made for processing by the CPU). When new information is placed
in a memory location (WRITE), the existing data is overwritten with the new data. Data is stored in binary (1’s and 0’s).
A byte is 8-bits and bytes are grouped into words. A computer with a 32-bit word has 4 bytes per word, whereas a computer with a 64-bit word has 8 bytes per word. Most instructions operate in entire words, for example, adding two 32-bit integers. Thus a 32-bit machine will have 32-bit registers and instructions for manipulating 64-bit words, whereas a 64-bit machine will have 64-bit registers and instructions for manipulating 64-bit words.
Byte ordering
The bytes in a word can be numbered: • from left-to-right (Big Endian) or • from right-to-left (Little Endian).
For example IBM mainframes and SPARC.computer systems use big endian, whereas the Intel family use little endian
Address Big Endian Address Little Endian
0 0 1 2 3 0 3 2 1 0 4 4 5 6 7 4 7 6 5 4 8 8 9 10 11 8 11 10 9 8 12 12 13 14 15 12 15 14 13 12 ßà ßà Byte Byte
ß---32-bit word ----à ß---32-bit word ----à Figure 7: Byte Ordering
Example: to store the value 6 in a 32 bit integer, the binary value is 00000000 00000000 00000000 000001102
Thus byte 2,3 and 4 are all zeros and byte 0 is 00000110 Big Endian
00000110 00000000 00000000 00000000
Little Endian
Main memory types include:
• Random Access memory (RAM) • Read-only memory (ROM)
Random Access memory (RAM) is an area in the computer system that temporarily holds data before or after it is processed. RAM can be written to as sell as read from. For example, when you enter a document, the characters you type usually are not processed straight away. They are held in RAM until you tell the computer to carry out a process such as printing. Most RAM is volatile, i.e. when the computer is powered off all data stored in RAM is destroyed. The term random access refers to the fact that any memory location in it can be accessed for reading and writing simply by supplying the appropriate address.
Read-only memory (ROM) holds data that is fixed and cannot be changed. It is used to hold reference data and programs that will be needed no matter what the application of the
computer. For example when a computer is powered on, a set of instructions stored in ROM called ROM BIOS (basic input output system) that tell the computer how to access its disk drives where the main operating system files are stored. The computer can then copy these files into RAM.
2.2.2 Secondary Storage
Most computer systems have secondary storage devices which are used to provide additional data storage capability. Secondary storage provides permanent storage for programs and data not currently being used.
The data in secondary memory is not directly accessible by the CPU but may be transferred to main memory before processing. Secondary storage is considerably less expensive than main memory but requires significantly longer access times. Examples of secondary storage include, floppy disks, hard disks and CD-ROM. A hard disk might have a storage capacity of 40
gigabytes. This is about 300 times the amount of storage in main memory (assuming 128 megabytes of main memory.) However, a hard disk is very slow compared to main memory. 2.2.2.1 Why have two types of storage?
The reason for having two types of storage is this contrast:
Primary memory Secondary memory
1. Fast 2. Expensive 3. Low capacity
4. Connects directly to the processor
1. Slow 2. Cheap
3. Large capacity
4. Not connected directly to the processor
Floppy disks are mostly used for transferring software between computer systems and for casual backup of software. They have low capacity, and are very, very slow compared to other storage devices.
2.3
Input/output devices
Input/output devices provide an interface between the computer and the user. There is at least one input device (e.g. keyboard, mouse, measuring device such as a temperature sensor) and at least one output device (e.g. printer, screen, control device such as an actuator). Input and output devices like keyboards and printers, together with the external storage devices, are referred to as peripherals
2.4
System Interconnection (Busses)
The computer system requires interconnections between the various components. When these data paths carry more than one bit simultaneously from a number of different components, it is referred to as a data bus or simply Bus.
m a i n m e m o r y I / O b r i d g e b u s i n t e r f a c e A L U r e g i s t e r s C P U c h i p s y s t e m b u s m e m o r y b u s d i s k c o n t r o l l e r g r a p h i c s a d a p t e r U S B c o n t r o l l e r m o u s e k e y b o a r d m o n i t o r d i s k I / O b u s E x p a n s i o n s l o t s f o r o t h e r d e v i c e s s u c h a s n e t w o r k a d a p t e r s . O n - c h i p b u s
3.
Microprocessors/MicroControllers/Embedded Systems
3.1
What is a Microprocessor
Microprocessor CPU (µP) Memory Input OutputFigure 9: Microprocessor Based Computer System
A microprocessor (µP) is a Central Processing Unit (CPU) on a single chip. The µP contains
the arithmetic, logic, and control circuitry required to interpret and execute instructions from a computer system. A microprocessor by itself is not a computer, when combined with other ICs that provide storage for data and programs, often on a single semiconductor base to form a chip, the microprocessor becomes the heart of a small computer or microcomputer. Microprocessors are classified by
• the semiconductor technology of their design (TTL, transistor-transistor logic; CMOS, complementary-metal-oxide semiconductor; or ECL, emitter-coupled logic),
• the width of the data format (4-bit, 8-bit, 16-bit, 32-bit, or 64-bit) they process • their instruction set (CISC, complex-instruction-set computer, or RISC,
reduced-instruction-set computer).
Microprocessors evolution is driven by performance, i.e. increased and faster processing power with the ability to store more data. Examples of first-generation 8-bit µP families include for example: Intel's 8080, Zilog's Z80 and Motorola's 6800. The 32-bit and 64-bit microprocessors found in today's workstations and servers include the x86, PowerPC, Alpha, MIPS and SPARC series.
3.2
What is a Microcontroller?
Microcontroller
CPU (µP) Memory Input OutputFigure 10: Microcontroller - A computer system on a single integrated circuit chip
A microcontroller is a complete computer system, on a single integrated circuit chip, optimized for control applications. It consists of a microprocessor, memory (both RAM, Random Access Memory and ROM, Read Only Memory), Input/Output ports, and possibly other features such as timers and ADCs/DACs. Having the complete controller on a single chip allows the hardware design to be simple and very inexpensive. Microcontrollers are used increasingly in products as varied as industrial applications, home appliances, and toys.
Microcontrollers evolution is driven by a requirement for increased integration and reduced cost, as most control applications do not need the word size and CPU speed of the newer general-purpose microprocessors. Examples of well established 8-bit controllers include, the PIC, Intel 80C51, Motorolla MC68HC05/08 series and MC68HC11 series of microcontrollers. From the MC68HC11 the MC68HC12 and MC68HC16, both 16-bit controllers, have been developed
3.3
What is an Embedded System?
Computer systems fall into two distinct categories: • General-Purpose Computers
• Embedded Systems
The first, and most obvious, is that of the general-purpose computer (i.e. PCs). The application programs themselves determine the functionality of the computer system. For the computer to fulfill a new role, all that is required is for a new application to be loaded.
In contrast with this is the embedded system. Embedded systems are systems that are dedicated to perform specific functions, with the hardware and software being tailored directly to the application. They differ from conventional computer systems in that they are not required to be general purpose. Real-time operation is also often very important for embedded systems. Some examples of embedded systems are microwave ovens, VCRs, CD players, video cameras, remote controls, video games, laser printers, fax machines, photocopiers, ATM machines, automotive control, climate control in buildings, aircraft and spacecraft avionics and control, railway signalling systems, music synthesisers, traffic-light controllers and cash registers
The processors used in PCs make up only a small percent of the overall number of processors sold. The majority of processors made are used in embedded applications. Embedded
applications usually require the processor (and/or system) to have high-integration (i.e. be very compact), low-power consumption, fast response and high performance. Embedded systems do not have the ability to run different software such as is possible on a general-purpose computer. There is no requirement for a VCR to run Windows 2000. The only software required by the VCR’s embedded controller is that which reads user input through the console buttons or remote control, and based upon that input, controls the various subsystems of the VCR. It is possible to change the functionality of an embedded system by changing the system’s controlling software, but this is not as easy as running a new application on a conventional computer. The most commonly used processors in small applications are the Intel 8051 (and derivatives) and the Motorola 68HC11 (and derivatives).
3.4
Summary: Differentiate between a Microprocessor and Microcontroller
• Microprocessors:high performance, general purpose "brains " for PCs and workstations (i.e. Pentium 4). It includes a control units, an ALU and various registers. Typical cost: €100 to €500, Annual demand: 10s of millions per year.
• Microcontrollers:
devices with high levels of integration for embedded control, Microprocessor functions plus on-chip memory and peripheral functions (e.g. ports, timers) "Swiss army knife" of microprocessor technology , Typical cost: >€1--€25, Annual demand: billions.
4.
Example: Describe a simple computer system
4.1
Washing Machine Example
This section demonstrates the use of block diagrams and flowcharts to describe a simple computer system. The example system chosen is a typical design of a modern washing machine incorporating a microcomputer control system. The Motorola MC6805 P2 8-bit
microcontroller is chosen for this example as it is a complete computer system on a single chip and its architecture is straightforward. The device is designed to be mass produced to compete successfully with mechanical and electromechanical controllers.
The 6805 is a complete, 8-bit computer system in a single integrated circuit. This means that its word size is eight bits, or one byte. The computer system is housed in a dual-in-line package and has 28 connecting pins as shown in the Figure 12 below.
4.2
Describe the System using Block Diagrams
Figure 13 shows a simplified block diagram of the architecture of the 6805 computer. Since the device is a complete computer, it contains not only a CPU and associated registers, but also an I/O subsystem and a memory subsystem based on ROM and RAM. In addition, the device contains a timer, which allows elapsed time to be measured.
Control Unit registers CPU Accumulator Index Register Condition Code Register Stack Pointer Program Counter High Program Counter Low ALU A0 to A7 Port A I/O Lines
B0 to B7 Port B I/O Lines
C0 to C3 Port C I/O Lines
RAM ROM PORTA Register PORTB Register PORTC Register Input/Output Memory Timer EXTAL XTAL ______ RESET ___ INT NUM Oscillator
Figure 13: Simplified Block Diagram for MC 6805 P2 Microcomputer System
A program for the 6805 is held in ROM inside the package. The pattern of bits held in this ROM is determined by a mask (an etching pattern) which acts like a stencil during manufacture. The 6805 is, therefore, called a mask-programmed computer.
4.2.1 Communications within the processor
The CPU is logically separate from the I/O and memory subsystems even though all are on the same chip. The processor communicates with the I/O and memory subsystems via one set of interconnections.
Since the device is an 8-bit device, the bi-directional path carrying the data, called the data bus, contains eight individual lines. The control bus contains connections that indicate the direction of data (to or from) and carries timing information to ensure that the transmitter and the intended receiver of data can synchronise. The identity of the receiver of data is given by the address on the address bus. The address range of the 6805 is 0x00 to 0x7FF, thus the address bus is 11-bits.
Instructions for the processor are transferred from the ROM to the CPU. The control unit then arranges for the instruction to be executed. This may involve fetching one or two further bytes of data along the bus.
The I/O and timer subsystems are connected to the same buses as the memory subsystem. Each device in the I/O subsystem is identified by its own unique address, and data can be sent to and from any one of them, using the same form of instruction as used for direct data to and from the memory subsystem, i.e. memory mapped I/O.
4.2.2 The Memory Subsystem
The memory subsystems of the 6805 include ROM and RAM. One section of the ROM has the purchaser's program (for example the washing machine program) embedded in it during manufacture. A second section of the ROM contains a self-testing program for the computer system which will test the subsystems connected to the bus.
The RAM in the memory subsystem contains 64 bytes. Any byte can be used for general data storage. The RAM is volatile, that is, the contents will be lost when the power is switched off.
Address
I/O Ports and timer 0x000 0x009
not used 0x00A
0x03F RAM 0x040 0x07F ROM (page zero)
: : 0x080 0x0FF not used 0x100 0x3BF ROM
(main user + self test) : : 0x3C0 0x7F7 Interrupt vectors 0x7F8 : 0x7FF
Figure 14: Simplified Memory Map - MC 6805 P2 Microcomputer System
4.2.3 Inputs and Outputs
The MC 6805 I/O connections are arranged as two 8-bit ports and one 4-bit port. Each port can be arranged as an output or an input, i.e. the ports are bi-directional. The I/O ports for the MC6805 are mapped as followed:
Address PORT A 0x00 PORT B 0x01 1111 PORT C 0x02 not used 0x03 PORT A - DDR 0x04 PORT B - DDR 0x05 not used PORT C - DDR 0x06
Figure 15: I/O Memory Mapping - MC 6805 P2 Microcomputer System
4.2.4 Clocks and Timers
The processor is driven by a clock signal that is derived from an oscillator contained within the device. The clock determined the rate at which instructions are executed and is a source of timing for the timer.
The MC6805 includes an 8-bit timer that counts pulses from either an external clock or the prcessor's own clock. Each time a pulse is received, the timer decrements. The timer give a signal when its value reaches 0.
4.2.5 The Central Processing Unit (CPU)
The processor works by executing a program of machine instructions. Each type of CPU has its own instruction set, i.e. the set of commands that the CPU is designed to interpret and execute. Machine instructions are very specific and it usually takes more than one machine instruction to execute one high-level language instruction. Many instructions move data from one place to another within the computer, others perform arithmetic or logical operations. Other instructions control program flow, jumping forward or backwards in the program.
Each instruction has its own unique operation code, known as the opcode, 8-bits long in the case of the MC6805. To execute an instruction the opcode is transferred to the CPU, where it is decoded and executed. Many instructions require data in addition to the opcode before they can be completed. If this is the case, the next one or two bytes following the opcode in the program are fetched from memory. These data bytes are referred to as operands. Instructions in the MC6805 are thus of variable length; the maximum is three bytes.
1 byte opcode
2 Bytes
opcode operand 1
3 Bytes
opcode operand 1 operand2
Figure 16: Machine Code Instruction Layout -
The Arithmetic Logic Unit ( ALU) is used to perform the arithmetic and logical operations defined by the instruction set. The CPU Control Unit sequences the logic elements of the ALU to carry out the required operations.
Registers in the CPU are memories inside the microprocessor (not part of the memory map). The MC6805 contains five registers, including the accumulator and the program counter. The accumulator is a data holding. Data can be read from memory into the accumulator and data can be written into memory from the accumulator. Arithmetic and combinatorial logic operations can be performed on the accumulator register, thus many machine instructions involve the accumulator in some way.
The program counter is a special address-storage register that the CPU uses to keep track of where it is in a program. the program counter always contains the address of the next
4.3
Describing the Operation using Flowcharts
C0 Hot Water Valve C1 Cold Water Valve C2 PumpDrain
C3 B0
4.3.2 Process Description - Example 1
Suppose we require a piece of code to detect whether the door is shut and the wash programme set to programme 1. Only if both are true will it lock the door and open the hot water valve. Otherwise it is to branch beyond this piece of code. The drain pump and cold water valve are to remain closed throughout.
We shall assume that an earlier piece of program has set Port A to be an input and Port B and Port C to be outputs. So we may design a simple algorithm for the process as follows:
Algorithm More Detailed Algorithm
1. Check that the door shut and wash programme is 1
• Read Port A into the accumulator register
• Mask off all bits except bit 1 and bit 0
• Test whether this value is 3, i.e. bit 0 and bit 1 are both set indicating that the door is shut (A0) and the wash programme is programme 1 (A1)
2. if not, then skip beyond this algorithm segment
• If the value is not 3 then branch to the next address beyond this fragment of code
3. If so, then lock the door and open the hot water valve
• If the value is equal to 3, then lock the door and open the hot water valve by setting Port C pin 0 and pin 3 to high.
The pseudocode for this program segment is as follows: 1. Load Port A into the accumulator register
2. AND accumulator with immediate value 0x03. 3. Arithmetic compare with immediate value 0x03
4. If not equal, then branch to the next address beyond this fragment (after step 6). 5. Load the accumulator with immediate value 0xF9.
The Flowchart for this program segment is as follows:
START
Accumulator AND 0x03 LOAD Port A to Accumulator
Is Accumulator = 0x03?
STORE Accumulator to Port C LOAD Accumulator <-- 0xF9
STOP
FALSE
TRUE
Figure 18: Flowchart for Program Fragment
Aside: see an example of the machine code for the above flowchart
opcode operands Meaning
0xB6 0x00 LOAD accumulator from Port A (0x00) *0xA4 0x03 AND accumulator with immediate value 0x03
0xA1 0x03 Arithmetic Compare with immediate value 0x03 0x26 0x04 BRANCH IFF NOT EQUAL to the next 4 bytes 0xA6 0xF9 LOAD accumulator with immediate value 0x03 0xB7 0x02 STORE accumulator direct to port C (0x02) Figure 19: Fragment of MC6805 Machine Code
4.3.3 Process Description - Example 2
A second example is a fragment from the program handling the draining of water from the tank. Take the following sample algorithm:
1 Set bit 2 on Port C to set the drain pump running
2 Read bit 6 on port A, i.e. water level low sensor, and wait until the water level is low 3 Clear bit 2 on Port C to stop the drain pump
4 Set bit 4, 5 and 6 on Port B to turn on the indicator lights 1, 2 and 3 START
SET Bit 2 Port C drain pump on
Is bit 6 Port A clear
WRITE 0x70 to Port B indicator lights 1, 2 and 3 ON
STOP
FALSE
TRUE
CLEAR Bit 2 Port C drain pump off READ Port A bit 6
4.3.4 Exercises:
Assuming the following:
• Washing Machine Programme 1: Hot Wash, Fast Spin • Washing Machine Programme 2: Hot Wash, Slow Spin • Washing Machine Programme 3: Cold Wash, Fast Spin • Washing Machine Programme 4: Cold Wash, Slow Spin 1) Fill Cycle
Design an algorithm for the fill cycle of the washing machine. This should include the filling of the machine with water until the machine is full. This simple machine has two temperature settings only for the water, hot or cold. The temperature will depend on the programme selected by the user. The water hot sensor is used to determine if the water is hot. When the fill cycle is complete the indicator light 1 should be illuminated.
2) Wash Cycle
Design an algorithm for the wash cycle of the washing machine. This should include the checking that the water level is high before spinning the motor forward for a period of time and then spinning in the reverse direction. When the wash cycle is complete the indicator lights 1 and 2 should be illuminated.
3) Drain Cycle
Design an algorithm for the drain cycle of the washing machine. This should include turning on the drain pump until the water level is low. When the drain cycle is complete the indicator lights 1, 2 and 3 should be illuminated.
4) Spin Cycle
Design an algorithm for the spin cycle of the washing machine. This should include checking that the water is drained before spinning the motor at the required speed for a fixed period of time. The speed will depend on the programme selected by the user. This simple machine has two speed settings, fast or slow. When the spin cycle is complete the indicator lights 1,2,3, and 4 should be illuminated.
.