Home
University of Hertfordshire
Contents
1. z o npo A 6005 oruono rq pue suoy suqg ZL JO 8 00089 pareys 1ossoooJq enq 005 EIN ureJ8erq IMPON powys 00089 14311A 3 x 1 CT 4 mel EO m 207 CI Ci r i E a E a ici 4 a 0 i Somen A onagri EE 3 LL ji weage snpoyy K10u19 A xipu ddy 6005 oruono rq pue pomnog suoYy suqg Witts BEne hons Electrical Electronic Engineering 2003 Appendix F PCB Layout and Measurements Us Flies DO Hell eee Gere gine Fira ajeni 7 z ea 4 m 140 iJ dedi 8 Fi 4 7 100 lt ae Nx Fra Dimensions 137 Not to scale Dual Processor Shared Memory 6
2. n Lur B TOE E 183 debe GOK Bower and E a 1 D aras 1 un 1 Dual Processor Shared Memory 68000 System Page 70 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Appendix N 68000 Read Write Cycle Timing Diagram 50 S 52 53 54 5 56 57 50 51 S 53 5455 56 57 S 5152 51 84 W W W W 55 55 57 From Motorola 8 16 32 Microprocessors User s Manual 9 1993 4 2 Dual Processor Shared Memory 68000 System Page 71 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Appendix O Users Guide Those wishing to use the shared memory module should follow the following simple instructions 1 Connect the shared memory module to two Flight 68000 microprocessor training systems via connectors and P2 These connectors are keyed so that incorrect orientation is not possible Ensure the connectors are pushed down onto microprocessor board firmly 2 Remove link LK1 from the Flight 68000 board Insert the Flight monitor if not already fitted 4 Application software can address the 64kbytes of shared memory between FF0000 and FFFFFF g3 Dual Processor Shared Memory 68000 System Page 72 of 72
3. D D D D a oqoococooormococoeoooqocoo CJD Jo S mw C O O O O oO qp C W JP OO oO a gt Figure 29 Table to show values used walking 15 test This test was conducted after the previous repairs of missing PCB tracks and the results obtained proved that the address bus signals were present and correct The diagrams in Appendix show the waveforms produced on the logic analyser against each hexadecimal address 11 2 4 Data bus walking 1s test A walking 15 test was also carried out data bus in exactly the same manner as the address bus The only difference being that the data bus tests included the value 1 because the least significant data line Do is present unlike the least significant address line Ao The test proved that the data bus lines were present correct The waveforms produced from this test are shown in Appendix L against the hexadecimal data value 11 2 5 SISD test Proving that a Single Instruction Single Data architecture operates successfully with the shared memory module is a matter of verifying that just one processor can access and transact with shared memory This arrangement was already verified by the tests conducted throughout the functional testing stageyand therefore no further tests were necessary 11 2 6 SIM
4. block fill FI and block print PR The assembler enables assembly language programs to be entered line by line MO FI and PR can be used to examine and alter the contents of specific memory locations which is useful for testing if a read or a write occurs successfully There is also C compiler available for F68k The compiler replaces the monitor EPROMs on F68k microprocessor board and the terminal window on the personal computer is Dual Processor Shared Memory 68000 System Page 10 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 replaced with a program called Embedded Development Studio EDS by Crossware Associates Figure 3 shows the setup between the F68k and a personal computer running a serial port terminal or the EDS compiler Terminal Compiler Figure 3 Flight 68000 connection to personal computer Also included on board the F68k is a 68230 peripheralinterface timer PI T The provides the user of the F68k with I O lines and timer functions for interfacing to the outside world The PI T port is compatible the F68k application board and other application boards designed by users There are two ports on the PI Twused as inputs and outputs which are mapped into the memory map starting at 8000012 basic addresses of these ports are given in Figure 4 PVT Port address Port B address Data Direction Register 800005 800007 Control Register 80000D 80000F Data Registe
5. Testing also revealed an error in the manual for the F68k Shared memory was designed to be located at an unused area of the F68ks memory map which was given in the F68k manual However testing revealed that the area used was not in fact unused although the work carried out during project did not nor did it need to identify what did occupy that address space The cons quence of this was a redesign to the circuits address decoding and a change to the shared memory location This unfortunately meant a sacrifice of the expanded and extended memory functions of the shared memory module because of modifications to the PCB Following modifications the circuit was tested and proved to function correctly according to the design Evidence still exists of one fault which causes a processor to abort but the passing of the tests that were conducted prove the circuit design is logically correct The remaining fault would probably be small and not be too difficult to trace and repair this was not done during course of the project due to time constraints It is therefore perfectly feasible that with a little more attention to the one remaining fault and a consideration of the improvements mentioned in chapter 14 that the same overall design can be used and further shared memory modules manufactured and used within the laboratory as intended Dual Processor Shared Memory 68000 System Page 40 of 72 Darren Witts BEng hons Elect
6. 3 00 LI 2003 HN VOIVIXV 7 2003 012 34001 01 2003 HN OV O1VIXV uote 07 2003 69 34001 6 2003 HN H XL 65 2003 Hn 89 0QqvH 34001 8 10 03 HN vOOVNI 86 2003 HN 29 c 0qvH 3 00 4 60 03 HN 64 Z 2003 HN 99 2 0qvd 3 00 9 70 03 HN ZdIS 9 2003 HN GO 0dvu 34001 6 2003 HN 989 c 0Gqvu du00 S 2003 HN vo oavH 3 00 r 2003 HN veo c O0dVY 30001 2003 HN 3 00 2003 HN 59 0 14001 55 2003 HN 3 00 2003 HN 260 c 0Gqvu 3400 Ze 2003 HN LO 00VY L 2003 HN LEO 400 16 3502 uoneuDBis q seinquny peu pue pasn Jo 151 00c uono pue eorno d suoy suqg 9 CL JO LG Wed 00089 AIOW IY poys 1ossooo1q enq 9609 3 IWLOL 03 HN 8 S13 90OS 98 vr 03 HN S13 90OS 98 6003 HN 3134208 v8 8703 HN vidld 3134208 58 3 c8 Z v3 3dAL cLOLPNIC 18 67773 3dAL 08 7 03 HN Zen c 6 vl 03 HN 9en 800HVZ 82 LASE Hh sen 92 L OL 907184 22 0663 8 96209 97 0663 HN 8edla 96209 GL 0663 cen 8 99669 vl 0663 8 962209 eZ 7103 HN oen c0
7. N Debug monitor version 76 found but not supported by this version of the debugger 7 nw Figure 33 Compiler error message Dual Processor Shared Memory 68000 System Page 38 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 12 Software The project aimed to produce a kernel suitable for use in conjunction with the shared memory module hardware The kernel was to provide a basic interface and enable a student to demonstrate the key features of shared memory and see a demonstration of Flynn s Taxonomy Research was conducted into software for use on parallel architectures although time constraints the project due to extended debugging of the hardware meant that no software development has yet taken place other than that used for testing purposes The areas of software that were researched include Multiprocessing multi tasking Software arbitration o Semaphores o Roundrobin Inter process communications o Mailboxes Command line interpreters Master Slave configuration Initialisation of the shared memory module Use of memory paging expanded memory The simplest implementation of a kernel would pe that is loaded into RAM by the user when required The users application would then b stored in a separate area of RAM with the ability to call functions within the kernel Such functions would include system calls which the kernel would then perform through the F68k monitor Th
8. SIMD test program subroutine When the test program was assembled and ran the monitor returned the error message OPCODE 1111 EMULATION followed by the contents of the data and address registers dumped to the screen The code was then disassembled in order to confirm correct entry and the disassembled code is shown in Figure 32 The first two instructions at addresses 0000 and FF0002 are shown corrupted The program was reassembled with similar faults occurring As the address and data buses had previously been verified no immediate cause as to this fault was apparent The corrupted lines of code were then entered individually by using assembler to branch to the specific corrupted lines and entering only those lines Several attempts at entry were made program was then run successfully from one processor The second stage was to same program from a second processor whilst the first processor remained running This was also done successfully and both processors were Observed running their own instances of the same program This proved that SIMD was working with shared memory module bringing two processors together in a parallel architecture with arbitration and bus isolators working as expected However after a period of time the second processor to run stopped running when it should have been in a continuous loop The processor was run again successfully but crashed again It was possible to restart
9. for the first time during testing The read write test was repeated and showed correct results which was proved by repeating the test shown in Figure 23 where ZZZZ equalled AAAA The read write test was repeated several times and at several memory locations The results obtained from the test became inconsistent and after disconnecting and reconnecting the shared memory module in an attempt to ensure a good connection the read write test constantly returned incorrect values for the data in memory or did not return any values and instead acted as though DTACK had not been received It was noticed that when a finger was placed over the interrupt acknowledge logic devices that the read write test returned values when it had otherwise been sitting in a loop waiting for DTACK to be asserted A logic analyser and visual investigation of this fault revealed a missing wire link on the stripboard containing the interrupt acknowledge components This link was inserted and read write tests repeated with correct results obtained Logically it would be expected that without the missing link the circuit would not function The reason correct results were originally obtained even with the link missing can be explained by crosstalk acting in a sometimes constructive but inconsistent manner Dual Processor Shared Memory 68000 System Page 33 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 11 2 2 Arbitration test The logic was c
10. DUART E Address 880000 800000 Address Auxiliary Memory device 4 128K 32K 403FFF 8K device TROP NND ULL PISTES NIC 400400 for up 400000 gt Illegal Address 080000 Ambiguous area 07 EPROM OLFFFF 27512 27256 007FFF 27128 device Coates R F The Flight 68K MKII Training System User Manual Flight Electronics Ltd 3 Ed 1997 Appendix B Dual Processor Shared Memory 68000 System Page 50 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Appendix B Flight 68000 Memory Map With Initial Shared RAM SS Shared RAM extended Ambiguous area DUART ADOOTIFE Address gal 880000 Unused Illegal Address FFFFFF Output latch Auxiliary Memory device 128K A0FFFF 32K 403 8K device 400400 Hasera for Monitor Unused 3FFFFF Illegal Address 080000 EPROM 020000 OLFFFF 27512 DOFFFF 27256 007 27128 device 000000 Dual Processor Shared Memory 68000 System Page 51 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Appendix Flight 68000 Memory Map With Final Shared RAM Unused egal Address Ambiguous area DUART llegal Add T ress p 880000 Am
11. board with very few no faults The result of this was that testing and debugging ran into the software development programming period and therefore no software could be developed during the project Dual Processor Shared Memory 68000 System Page 43 of 72 Witts BEng hons Electrical Electronic Engineering 2003 15 4 Initial Gantt chart Gantt Chart by week wersion 4 2 Cc O 0 18 20 11 20 27 April 2 Summer Term 06 April 20 TE T 0 IS 20 April 2003 13 April 2 Hol 3 E 12 15 L Pomana Ki 9 16 March 2003 L foe march 203 23 February 2003 16 February 2003 09 February 2003 iterature Research Brai storming initial EM EE BN 17 November 2002 02 February 2003 19 January 2003 12 January 2003 05 January 2003 Seminar presentation 29 Decernber 2002 22 December 2002 15 December 2002 08 December 2002 01 December 2002 24 Nowember 2002 Hol Milestone assessment criteria set deadlines Float 10 November 2002 November 2002 2 October 2002 13 October 2002 Week ending Autumn Term Spring Term Page 44 of 72 Dual Processor Shared Memory 68000 System Witts BEng hons Electrical Electronic En
12. conducted as SIMD tests were deemed to satisfy all aspects of MISD 11 2 8 MIMD test Multiple Instructions Multiple Data is satisfied by the correct operation of any processors that can communicate with one_another and therefore function as a parallel architecture The initial functional tests proved thatsshared memory could be written to and read from including writing data from one processor and reading that data from the second processor The read write tests are a proof of MIMD since both processors were communicating MIMD is also apparentithrough the SIMD tests because proof was obtained of a working parallel architecture Therefore no specific MIMD tests were conducted 11 2 9 C Compiler With the hardware largely proved working the monitor EPROMs were swapped for the compiler EPROMSs in an attempt to repeat the read write tests with the C program that was originally written and shown in Figure 22 The compiler returned the error message shown in Figure 33 and proceeded no further subsequent attempts with this and different C programs produced the same error Unplugging the shared memory module and using the compiler produced correct results using local memory The cause of this fault remains unknown due to time constraints but may be related to the problem described in chapter 11 2 6 Dual Processor Shared Memory 68000 System Page 37 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 eStudio
13. in extended memory 15 therefore Shared access Aj An Azi An Aig Dual Processor Shared Memory 68000 System Page 18 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 This expression implies that be ignored However needs to be an input to the decoder when in expanded mode to prevent access outside of the allocated address range Therefore to avoid having one decoder to recognise expanded mode and another to recognise extended mode the input Ais be forced low whenever extended memory is enabled The decoder would then recognise extended memory and expanded memory as the same and grant access to shared memory A circuit to fulfil the above requirements for an address decoder is shown in Figure 15 where is an active low extended mode signal which when asserted logic low ties the output of the AND gate and hence Ajo low When in expanded mode the outputof the AND gate and hence Ajo is unaffected The truth table for this function is shown in Figure 14 ext Output Description 0 0 0 Extended mode A6 forced low 0 1 0 Extended mode A6 forced low 1 0 0 Not extended mode AND gate output 1 1 1 Not extended mode AND gate output Figure 14 Logic to force low when in extended mode 5 Figure 15 Address circuit The address decoder descri
14. maximum access time determined by RAM MAX 400 81 6 2 318 4n Sec Where 400nSec read write bus cycle of the Flight 68000 10 2 clock Dual Processor Shared Memory 68000 System Page 58 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Appendix I Power Calculations for Initial Circuit Current Drawn Designation Device Number of Max Current m Total mAmps U1 2 3 8 9 10 74 30 6 00 50 000 300 000 04 11 74HC4078 2 00 0 001 0 002 05 74HC11 1 00 50 000 50 000 U6 27 74 08 2 00 50 000 100 000 U7 12 28 74HC04 3 00 50 000 150 000 U13 74F786 1 00 55 000 55 000 014 74HC123 1 00 50 000 50 000 015 74 74 100 50 000 50 000 016 23 24 25 26 74 244 5 00 50 000 250 000 U17 18 21 22 74HC245 4 00 70 000 280 000 U19 20 74HC373 2 00 70 000 140 000 U29 74HC138 1 00 50 000 50 000 U30 74HC02 1 00 50 000 50 000 U31 32 33 34 62256 4 00 15 000 60 000 TOTAL CURRENT 1585 002 Voltage 7 5Volts to 12Volts DC Power At 5Volts 2 5 1 6 8Watts At 7 5Volts 7 5 1 6 12Watts At 12Volts 12 1 6 19 2Watts Measured Current The current drawn by the measured with the circuit under low load conditions memory access initiated and DTACK disconnected in order to continuously enable buffers and stop devices entering a quiescent state Measured Current 2 0 5Amps The maximum current specified in
15. not asserted when the 68000 expects it then wait states are introduced to the bus cycle until it is asserted With a synchronous bus memory devices would have to be fast enough to have data ready when the processor expects it and peripherals fast enough to act on data before the processor removes it from the bus The asynchronous bus therefore allows the 68000 to be used with slower memory devices and peripherals than would otherwise be possible There are three signals called function codes FC1 and FC2 that are output from the 68000 The functions codes provide a means of determining what state the 68000 is currently in as shown in Figure 1 The function codes and the current address on the bus are considered valid when the address strobe AS is asserted active low by the processor Function Code FCO FC2 Meaning 0 0 0 Reserved 0 0 1 User being accessed 0 1 0 User program being accessed 0 1 1 Reserved 1 0 0 1 0 1 Supervisor data being accessed 1 1 0 Supervisor program being accessed 1 1 1 Interrupt being processed Figure 1 68000 function codes One further signal of importance to bus transactions is the read write output R W When this output goes low it indicates that the processor has started a write cycle When the output is high is means that a read cycle is in progress Figure 2 shows the 68000 outline and pin details Dual Processor Shared Memory 68000 System Page 9 of 72 D
16. or any other common 12Volt power pack Appendix I states the power requirements of the circuit The calculated values are too high to work with the desired power supplies however the measured current was much less It was therefore decided to use a 7 5Volt power supply and to fit a heat sink to the voltage regulator Testing was conducted with this configuration without any problems being found The DC power socket provided on the shared memory module also allows easy connection to a bench power supply with the appropriate connector A power indication LED was alsouncluded as a visual aid Also one decoupling capacitor 100nF per integrated circuit was included to reduce the effects of noise The capacitors were placed as close to each deviceras possible Dual Processor Shared Memory 68000 System Page 24 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 9 Printed Circuit Board and Mechanics A major issue for the project that needed consideration was how the circuit should be constructed It was decided that construction on breadboard would be too unreliable given the amount of portability needed between laboratories and also that crosstalk would become a problem with trailing wires between the shared memory module and the microprocessor board Another option was to use development board of a suitable size and with suitable holes for the connectors The price and size of such development boards was examined and no s
17. the program subsequent retries but after an unspecified time it stopped running This fault remains present as this stage of testing was carried out close to the project deadline Dual Processor Shared Memory 68000 System Page 36 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 F gt DS BLOCK START ENTER ADDRESS FF0000 BLOCK END ENTER ADDRESS FF003E FF0000 0000 FF0002 FFFF 222 FF0004 227C0080000F MOVEA L 0080000 1 FF000A 12BC0080 MOVE B 80 A1 000 227C00800007 MOVEA L 00800007 1 FF0014 12BCOOFF MOVE B FF A1 FF0018 227C00800007 MOVEA L 00800007 1 001 12BCOOFF MOVE B FF A1 FF0022 227C08000013 MOVEA L 08000013 1 FF0028 1281 MOVE B 01 1 FF002A 610005D4 BSR L FF0600 002 D27C0001 ADD W 0001 D1 FF0032 6000FFF4 BRA L FF0028 FF0036 00000000 ORI B 00 D0 FF003A FFFD FF003C FFFE FF003E FFFF 777 Figure 32 Disassembled test program 11 2 7 MISD test Verifying operation of a Multiple Instruction Single Data architecture entails the same use of shared memory by the two processor as with SIMD The processor would be competing for access to shared memory and therefore relying on arbitration but with MISD tests the processor would be gaining access to shared memory to retrieve data as opposed to instructions as with SIMD but the test would prove nothing more than was proved with SIMD Separate tests for MISD were therefore not
18. 0 00 000 17 8 CiruitDesign 18 8 1 Address decoding 18 8 2 Simulation of address decoding design ___ 000000020220 21 8 3 Output latch 2 ___ _ __ 252 21 8 4 Arbitration me 23 8 5 Bus signal isolation 200020202020 0 0 23 8 6 DTACK and 1 o o 24 8 7 Power supply AQ 24 9 Printed Circuit Board Mechanics 0 0 25 10 Power Test Results Debugging 27 10 1 Methodologyforpowertests 27 10 2 Results and rectifi ations for power tests 1 1 0 27 10 2 1 Visual 27 10 2 2 Voltage and current measurements_ 0 0 27 10 2 3 VolageatIC 27 10 2 4 Voltage bus connector 4 27 11 Functional Test Results and Debugging ssi 28 11 1 Methodology for functional tests 2 28 11 2 Resultsand rectifications for functional tests eee 28 11 2 1 Memory read and write 0 000 000 0000000000000 000 28 11 2 2 Arbitration 34 11 2 3 Address bus walking Is test 34 11 2 4 Data bus walking 19 35 11 2 5 35 11 2 6 SIMD test 0 0 0 0 000000 000 35 11 247 MISD test 37 11 2 8 MIMD teste 37 11 2 9 C Compiler 37 12 rp e oi er 39 13 Conclusions 40 Dual Processor Shared Memory 68000 System Page 4 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 14 Further development 2 41 14 22222222 41 14 2 Circuit improvement o 2 _ 41 143 Software
19. 0 System Page 68 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 i i E ETHER B a T TI ru TI ll s Ld 1 3 a rx fim i bee Mis Tu amam Ls i m Ltz ane lace rib 6 qus mans n 8185333385 gaeti sd wiria E CIT INE Oe 2 7 gt penisimi BE 2 avon Page 69 of 72 Dual Processor Shared Memory 68000 System Darren Witts BEng hons Electrical and Electronic Engineering 2003 Tie gt 1 T E ab rg 2 9 jii 5 Mi y dii a 0 4 demum H a a TO o n ii 04 F F T ar LM zm ET z Lio Z Diim E r sTuF tur Oo Go dur
20. 00 status output signal FIFO First In First Out I O Input Output IC Integrated Circuit LAN Local Area Network LDS Lower Data Strobe 68000 control bus signal LED Light Emitting Diode MIMD Multiple Instructions Multiple Data Flynn s Taxonomy classification MISD Multiple Instructions Single Data Flynn s Taxonomy classification MO Memory Open Flight monitor command Printed Circuit Board PVT Peripheral Interface Timer Input Output port controller R W Read Write 68000 input signal RAM Random Access Memory ROM Read Only Memory SIMD Single Instruction Multiple Data Flynn s Taxonomy classification SISD Single Instruction Single Data Flynn s Taxonomy classification SPICE Simulation Program with Integrated Method of simulating a circuits Circuit Emphasis behaviour on a computer UDS Upper Data Strobe 68000 control bus signal V Volts Dual Processor Shared Memory 68000 System Page 6 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 5 Introduction 5 1 Design brief and discussion Design a system to enable two Flight MC68000 MKII training systems to operate as a dual processor system with the tightest Jorm of coupling shared memory The design needs to interface to the existing training boards and be used in conjunction with the training boards for educational training purposes Dual processor computer systems fall into the categories or
21. 2 buffers open circuit This was rectified by soldering wires between all the necessary points Following the rectification of these two faults the read write tests were repeated in the same manner The results differed from those being obtained before but were still not correct Figure 24 shows the results following rectification of the address bus The error message CHANGE was displayed after a value was entered although the upper byte of the returned value was always changing to the inputted value This pointed to a Dual Processor Shared Memory 68000 System Page 29 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 problem with the lower byte RAM chip selection and a visual examination of the data strobe pins on the bus connectors showed that the lower data strobe LDS had no track going to it A study of the circuit diagram showed that this connection had again been labelled incorrectly and was missing from the netlist F gt MO ENTER ADDRESS A80000 00A80000 AXXX NO CHANGE Figure 24 Monitor terminal window following address bus corrections The missing UDS was found on both ports and was rectified by soldering a wire between the correct pins on the PCB The read write tests were then repeated on both ports however similar results were obtained with the fixing of the UDS signal making novapparent improvement In an attempt to prove that shared memory was being
22. 2227 Figure 23 Monitor terminal window showing read write command The results obtained from this test showed the following symptoms of a fault Some addresses did not respond to the monitor Some addresses appeared stuck at a certain data value Some addresses sometimes read the correct value and sometimes the incorrect value These results were similar to the results fromthe Cyprogram as arbitrary values were being obtained This led to the visual inspection and continuity tests of the address and data lines on the shared memory module PCB Several address lines were found to be missing from the PCB tracks as detailed below 1 Upper byte page 1 address line A2 had no track on the This was caused by a circuit diagram mistake Although the wire had been drawn it was missing from the netlist because one end of the wire had been labelled as D2 instead of A2 Instead of flagging a possible error when exporting netlist Circuitmaker had left off the connection This also meant that every other RAM device had an open circuit A2 because of the way in which PCB tracks were routed This would mean overlapping addresses within the memory devices The fault was rectified by soldering small solid core wire wrap wire between the correct points 2 Port 2 address lines open circuit The visual inspection also showed the same fault as in fault 1 above but with all the address lines between the RAM devices and port
23. 8000 System Page 55 of 72 CL JO 96 9884 00089 1ossooo1q enq 0 03 ein Oc2dIG 19 20 03 HN 060 3 00 06 06 03 HN 0 09 2003 HN 629 3 00 6 05 03 HN Zin 0 69 2003 HN 820 34001 82 0803 HN 9in 0 89 2003 HN 129 3 00 1 1103 HN SIN vidid ZS 2003 HN 929 0QqvH 34001 92 203 Hn vin 99 2003 HN 929 34001 0093 1VNH3LIX3 ein 98 4 99 2003 HN vzo 3 00 vc HN eun vidid TS 2003 HN ezo 34001 ez 9103 HN LEN vidid 8 070 6 2003 HN 34001 HN OLN OSOHPL S 2003 HN 129 34001 Le HN en Y ldla IG 2003 HN 020 34001 HN 8N vidid 06 2003 HN 619 c 3 00 61 03 HN Zn vOOH Z 67 2003 HN 819 0QqvH 34001 81 HN 80 387 2003 HN 442 3 00 L HN sn ZF 2003 HN 919 3 00 9I 9L 03 HN vidid 8 07 2 97 2003 HN 910 0QqvH 319001 SL HN OSOHPL Sr 2003 HN 3 00 HN on vidid FL 2003 HN 19 0qvu 3 00 I HN OSOHPL 2003 HN 210 34001 6703 LLAS 17 zv 2003 LIO 0
24. D test The Single Instruction Multiple Data architecture was tested by using an assembly language program written by the project supervisor and assembled using the F68k monitor The test program was designed to produce a counting sequence on the LEDS of an F68k application board The aim of this test was to place assemble the test program into shared memory and run the program twice once from each processor at the same time In this way two version of the same program Single Instruction would be seen to run on the LEDs of two different processors Multiple Data The two programs would be offset from one another by the time difference between starting each program and the amount of time the first access to the arbiter lasts for Dual Processor Shared Memory 68000 System Page 35 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 The test program used is shown in Figure 30 and the subroutine for that program in Figure 31 MOVE B 03 D1 Data register 1 MOVEA L 80000 1 PI T control register MOVE B 80 1 Address register 1 MOVEA L 5800007 1 data direction register MOVE B FF A1 MOVEA L 5800007 1 MOVE B FF A1 MOVEA L 5800013 1 PI T data register MOVE B D1 A1 BSR L FF0600 Subroutine in Figure 31 ADD W 00001 D1 BRA L FF0028 ORI B 500 00 END Figure 30 SIMD test program MOVE W FFFF D4 DBEQ D4 FF0604 RTS ORI B 00 D0 END Figure 31
25. O _ 41 15 Project management 42 15 1 42 15 2 Costanalysis_ 42 153 Timeanalysis oZ _ 42 15 4 Initial Gantt 44 15 5 Final Gantt chart 45 16 References 46 17 Bibliography _ 2 47 18 List of Appendices 1 W d 49 3 1 Table of figures Figure 1 68000 function codes 00000 o oo 9 Figure 2 The Motorola68000 _ 10 Figure 3 Flight 68000 connection to personal computer Yay IL Figure 4 F68k 11 Figure 5 SISD Architecture 2 12 Figure 6 MIMD Architecture 12 Figure 7 SIMD Architecture 2 2 12 Figure 8 MISD Architecture uf __________ __ 13 Figure 9 Expanded Extended memory _ 4 _______________ 14 Figure 10 Truth table of first come first served arbiter 15 Figure 11 Block diagram of arbitration 15 Figure 12 Shared memory module block diagram 1 0 0 o o 16 Figure 13 Address decoding 18 Figure 14 Logic to force Ajg low whenamextended mode _ 224220 19 Figure 15 Address decodercircuit 0 0 0 00 0 0 0 0 0 00 0 0 0 19 Figure 16 RAM chipselectlogictruthtable gt Z 1 1 1 1 20 Figure 17 RAM chip select circuit diagram___ 0 0 0 20 Figure 18 RAM chip select simulated waveform 21 Figure 19 Output latch address decoding 0 0 0 0 0 0000 _ 22 Figure 20 Output latch circuit C 4 f 4 f 22 Figure 21 PCB widt
26. OHTZ eL 203 HN 8 LOHTZ LZ 7103 HN 70 OZ 7103 HN Zen 80 69 0803 HN 5748 0 89 0603 HN Sen 43 29 0803 HN ven 0 vee 99 0803 HN 0 99 0603 HN 1 Svo v9 0803 HN Len 0 OHVZ 59 0603 HN 1 eZEOHVL c9 00c oruodoe q pue 899 SHIA Darren Witts BEng hons Electrical and Electronic Engineering 2003 Appendix H RAM access time calculations Time to access shared memory fj ty4 thes Where tcs MAX ty28 ty2sttur9 5 7 tu17 tu18 tv23 tv24 due to parallel paths The following table shows the device propagation delays Device Designation Device Type Time Designation Time nSec U7 74HC04 tuz 7 U4 74HC4078 26 013 74 786 6 6 U16 23 24 25 26 74 244 tui6 9 U17 18 21 22 74 245 tuz 7 027 74HC08 027 7 U19 20 74HC373 09 12 028 74 04 1028 7 029 74 138 1029 12 62256 tram See below From the above table tcs MAX tu2s tu2st tu29 A tu29 tu27 MAX 7 7 12982 7 MAX 26 19 26nSec toutters tu17 tu18 tu23 tu24 MAX 9 7 7 9 9 9nSec Therefore time to access RAM fy 4 fg thes 742647466494 264 tery 81 6 tram The RAM used must therefore have a
27. UNIVERSITY OF HERTFORDSHIRE Faculty of Engineering amp Information Science BATCHELOR OF ENGINEERING DEGREE WITH HONOURS IN ELECTRICAL AND ELECTRONIC ENGINEERING Project Report Dual processor shared memory 68000 system Darren Lee Witts April 2003 Darren Witts BEng hons Electrical and Electronic Engineering 2003 1 Abstract This report is a detailed description of the work carried out in order to develop a prototype of a shared memory module that is compatible with the MC68000 microprocessor training system by Flight Electronics Ltd The module is intended to be used together with two Flight MC68000 training systems as an educational aid for computer architecture courses where the syllab s contains parallel processing An account is given of all aspects of the project including design manufacture of a printed circuit board testing and debugging together with research and associated project management Issues The report is written for anybody who wishes to gain an understanding of the work that has taken place during the project and for those wishing to carry out further development Dual Processor Shared Memory 68000 System Page 2 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 2 Acknowledgements There are many people who contributed to the success of this project by providing help and guidance without any of which the project would not have reached the stage it has The help o
28. Upper byte page 2 pand L_2 Lower byte page 2 are asserted low as expected The rest of the waveform shows that the upper and lower pages respond correctly to the inputs UDS LDS and PAGE If UDS is high then both upper byte pages are also high and if LDS is high then both lower byte pages are high Figure 18 RAM chip select simulated waveform 8 3 Output latch The PAGE signal described chapter 8 1 is generated from the microprocessor via a memory mapped output latch on boardithe shared memory module located at address FFFFFF because this is another unused space at top of the memory map Further address decoding is also needed to decode an aceess to latch and the first eight bits of the data bus need to be connected to latch to carry the output byte A suitable latch is the 74HC373 since it is a readily available device and performs all the functions required To fully decode the address of the output latch all 23 bits of the address bus and the lower data strobe need decoding The circuit shown in Figure 19 achieves this Dual Processor Shared Memory 68000 System Page 21 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Figure 19 Output latch address decoding The master microprocessor needs to be in control of memory configuration and therefore only the master must be allowed to write to the output latch otherwise master and slave processors could c
29. accessed RAM devices were removed from the circuit and the read write tests repeated The returned values were random as they had been with the RAM devices installed which proved memory was not being accessed at all In order for the 68000 microprocessor to complete a bus transaction and therefore for the Flight monitor to complete an MO command it must receive b ck DTACK For this reason the buffer on the shared memory module that was responsible for generating DTACK was removed from the circuit so that the effects could be observed The read write test was repeated with no difference to the results This indicated that the F68k was generating a DTACK signal itself otherwise the MO command would haye sat in a loop waiting for DTACK Another test to reinforce this was done by rem ving the shared memory module completely and repeating the read write test Again there was no difference in results To prove that the F68k was generating DTACK a logic analyser was obtained and connected to the 68000 microprocessor DTACK was observed being asserted at regular intervals both when a read write was initiated and when no read write was initiated with the MO command The results obtained up to this point indicated that although the F68k manual and address map claimed that A80000 to 9 were unused areas they were not MO command was then used to open addresses within the range FF0000 upwards Several addresses were tri
30. arren Witts BEng hons Electrical Electronic Engineering 2003 WESTO MCEATID MDGBHCTOO Figure 2 Th Motorola 68000 6 2 Flight 68000 MK II training system The Flight 68000 MK II training system F68k is a product manufactured by Flight Electronics Ltd and is intended to be used within an educational or training environment for students to gain an introduction to microprocessors and in particular the 68000 The F68k operates a 10MHz clock speed and contains 16kbytes of local memory split into upper and lower byte physical devices which are expandable to 512kbytes The F68k microprocessor board contains an input output port which can be interfaced to application boards containing LEDs motors analogue to digital converters etc The 68 also caters for th more advanced student by providing a bus expansion port which connects to all of 68000s 64 pins with the exception of Vcc This enables external peripherals and extra memory be installed on user designs which interface to the bus expansion port The standard monitor provided with the F68k is located on upper and lower byte EPROMs The monitor provides acommand line interface which is accessible through any terminal window reading the F68k serial port The most common configuration is by connecting the serial port of a personal computer to F68k The monitor proyides an assembler AS and a disassembler DS and other commands such as memory
31. as outputs corresponding to the inputs and must only enable one outputat any one time Access is granted following a request on a first come first serve basis because most other forms of arbitration fixed priority time shared etc could be implemented in software by the two processors communicating through shared memory Logically a bi stable circuit appears to provide the required functionality for an arbitrator however if two inputs are asserted make a request at the same time thena bi stable suffers from meta stable race conditions where the outputs continually race back to the inputs and the outputs continue in an on off loop Due to the meta stable reasons mentioned an off the shelf device from Philips was sourced The 74 786 is a 4 bit arbitrator that is designed to eliminate the mieta stable race conditions and also operates on a first come first served basis and therefore fulfils the project requirements This device was difficult to source as it is a new component and not listed in supplier catalogues but a search of Philips Semiconductors website revealed the datasheet The 74F786 also includes an AND gate which used to combine the grant signals and provide a signal meaning an access has been granted but not specifying which one This was used to trigger an LED which indicates memory access 74HC123 mono stable was placed in the path of LED to produce a one second re triggerable delay so that the LED is visibl
32. aufmann 1999 Davies Paul The Indispensable Guide to C With engineering applications Addison Wesley 1995 Mimar Tibet Programming and Designing With The 68000 Family Prentice Hall 1991 Tanenbaum Andrew S Operating Systems Design and implementation Prentice Hall 1987 Hwang Kai Briggs Fay A Computer Architecture and Parallel Processing McGraw Hill 1989 Stallings William Operating Systems 274 Ed Prentice Hall Duncan Ralph A Survey of Parallel Computer Architectures IEEE Computer February 1990 pp 5 16 Flynn Michael Some Computer Organisations and Their Effectiveness IEEE Transactions on Computers Vol C 21 1972 pp 94 Dual Processor Shared Memory 68000 System Page 47 of 72 17 18 19 20 21 22 23 24 25 26 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Li K F Dimopoulos N J Atwood J W The HM Nucleus distributed kernel design for the homogeneous multiprocessor IEEE micro 7 1 Feb 1987 pp 14 24 Boukerrou R Arbitration unit for microprocessor systems using a shared bus Microprocessors and Microsystems 12 4 May 1988 pp 211 213 MC68000 16 32 Bit Microprocessor MC68000 D Motorola 1985 68000 8 16 32 Bit Microprocessors User s ManualpMC68000UM 9 Ed Motorola Inc M68000 Programmers Reference Manual M68000PM Motorola Inc rev 1 Switch Fabric Implementation Using Shared MemorypAN1704 Motorola Inc rev 1 D
33. bed so far is adequate for generating a shared memory request signal The actual RAM chip upper or lower byte can be selected by the data strobes however two pairs of RAM chips exist with the second pair being extended memory or the second page of expanded memory Therefore the actual RAM chip select logic needs to take into account the memory mode and the page The circuitry required to generate the RAM chip selection is best located after address decoding and arbitration so that it only needs to be produced once and not once for each port Three signals have been identified that need considering when selecting the physical RAM chip these are UDS LDS and PAGE Although there is no second page when in extended memory a decoder can recognise the PAGE signal as an extended signal when in extended mode and the extended range is addressed A standard 74HC 138 3 bit to 8 bit decoder is suitable for this purpose The truth table for the decoderis given in Figure 16 UDS and LDS are active low Dual Processor Shared Memory 68000 System Page 19 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 UDS LDS PAGE 74xx138 Output Required operation Description 0 0 0 Qo A Page 1 upper lower 0 0 1 Qi B Page 2 upper lower 0 1 0 Q2 C Page 1 upper 0 1 1 D Page 2 upper 1 0 0 Qu Page 1 lower 1 0 1 Page 2 lower 1 1 0 Page 1 not select d UDS and LDS disable 1 1 1 Page 2 not
34. biguous area FF0000 430000 00020 800000 FFFEF Illegal Address Auxiliary Memory Reserved for Monitor Unused Illegal Address Ambiguous area EPROM EPROM Dual Processor Shared Memory 68000 System 020000 lFFFF 27512 DOFFFF 27256 OQ7FFF 27128 device Page 52 of 72 240 lt lt ed 00089 2002 AON 19A INPO 00089 1814 SHIM tt Tm e i E Pua ELI 1I ia 4 Fs 1 rt Lar w TET i zi M Ce we lt I
35. both of those processors require access to a shared media memory it is clear that there will becontention for that media when both processors require access simultaneously To avoid contention and subsequent corruption of data occurring a form of arbitration is needed to arbitrate the request signals from each processor When a processor generates a request forthe shared memory it is the arbiters function to grant access if certain rules are satisfied Arbitration rules include the following First come first served Fixed priority Variable priority Time scheduled round robin Length of time access is needed for First come first served grants access to the first processor that makes a request and holds the other processor back until the first has completed its use of the shared memory A prioritised arbiter grants access to the most highly prioritised processor The processor priorities may they may be dynamic changing depending upon the task that is currently being executed A time scheduled arbitration scheme grants access to each processor for a fixed period of time which may or may not be enough time for the processor to complete the tasks it 1s executing Arbitrating on length of time that access is needed for really means assigning a priority depending upon the length of time that a processor states it requires access for when it makes a request Normally the processor that asks for the shortest length
36. ce AAAA alternating 1s at shared location printf Address d contains d mem mem Figure 22 Initial C test program The results of running this program were shown in the EDS output window with the returned address and data values that the printf statement displayed as an indication of correctness The test was carried out with each port one at a time Both ports returned similar results during this test but neither functioned correctly The values returned were not as expected and each time the program ran a different value was returned In order to bring testing down to a lower level and eliminate C program compiler and linker from the investigation of the fault the F68k was fitted with the original monitor EPROMs providing the command line user interface Dual Processor Shared Memory 68000 System Page 28 of 72 Darren Witts BEng hons Electrical Electronic Engineering 2003 With the monitor installed the MO command was used to read and write values to specific memory locations The equivalent monitor command of the C program in Figure 22 is shown in Figure 23 where is the initial returned value AAAA is the hexadecimal value to be written and ZZZZ is the returned value after the initial write If the first write was successful and AAAA was entered into memory then ZZZZ would equal AAAA F gt MO ENTER ADDRESS A80000 00A80000 XXXX F gt MO ENTER ADDRESS A80000 00A80000
37. completed build of the system 5 4 This report This report has been written primarily for two types of people Firstly so that any person with a basic understanding of electronics can understand the work that has taken place and the results that have been reached and secondly so that an electronics engineer can duplicate the work or gain a thorough understanding in order to carry out further research or development Recommendations for further development are given in chapter 14 The report is structured so that the reader can follow through the chapters and build up an understanding of the problems faced and how they were solved and integrated into the design To do this the first chapters give a background into related theory Alternatively the informed reader can skip directly to the detailed design chapters to gain the same understanding Reference will be made throughout the text to signals being asserted If a signal is active low then when asserted the signal should be considered at a logic low level If a signal is active high then when asserted the signalsshould be considered at a logic high level Every effort has been made within the text to avoid any confusion arising between references made to the shared memory module board and the Flight 68000 microprocessor board and also between shared memory and local memory Dual Processor Shared Memory 68000 System Page 8 of 72 Darren Witts BEng hons Electrical and Electronic Engi
38. d also into the C language and using pointers for direct access to a physical address space Some research was also conducted on command line interpreters with the vision of implementing such a user interface as a gateway into the functions of the shared memory module More detail into the software requirements for the project is given in chapter 12 Dual Processor Shared Memory 68000 System Page 17 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 8 Circuit Design 8 1 Address decoding The F68k memory map is shown in Appendix A Any unused illegal area memory map could be used as the location for shared memory with the address decoding being provided by appropriate logic The 128kByte address range of 480000 to A9FFFF extended ywas chosen as it is towards the top of the memory map but retains enough memory space above to allow further expansion in the future When addressing an unused area of memory F68k generates a bus error signal and this needed to be disabled by removing link LK1 so that the unused address areas can be accessed It was decided to include the option of either extended or expanded memory on the module with expanded memory including two pages of 64kBytes and extended memory being the 128kBytes of the two pages combined The user needs a method of switching between expanded or extended mode and switching between pages when in expanded mode A software addressable output port was i
39. device outline and device designation which made it easier to assemble the PCB The words power and memory were also printed next to the appropriate LEDs to give a description of their function and the word 12V was printed next to the power socket to indicate the maximum voltage that should be connected Dual Processor Shared Memory 68000 System Page 25 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 The shape of the board became rectangular because of the necessary width and final height but notch was also needed in order to clear a ribbon cable connector on F68k The ribbon cable connects the F68k to an application board and the shared memory module needs to clear this because it was perfectly feasible that the shared memory module be used in conjunction with the applications board during future use and during testing In order to place the components and route the tracks the PCB netlist had to beimported into Protel from Circuitmaker Once imported the netlist could be displayed so that the extent of connections could be seen The routing of tracks would be an impossible task to complete manually on anything other than a very small circuit board and the netlist showed that this was not a small circuit Therefore routing was completed automatically using Protels autorouter function The autorouter showed that the PCB needed to be double track sided due to the amount of connections The vias o
40. e and portable This modification is shown in Figure 26 Dual Processor Shared Memory 68000 System Page 31 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Figure 26 SMM under test showing modification After the address decoding was changed and the interrupt acknowledge modification in place the read write test shown in Figure 24 was repeated command was entered as before but did not return an initial value This showed that the command was sitting in a loop which was normal if it had not received DTACK The logic analyser was then connected to the buffers responsible for generating DTACK on the shared memory module The logic analyser showed that the DTACK signal was at logic high and did not change to a low state when read write was initiated by the command visual inspection of the PCB then revealed that no track connected between the buffer and the bus connector and was therefore open circuit The circuit diagram was checked and as previously found with missing bus signals DTACK had been numbered incorrectly which had caused to be missing from the netlist This was solved by soldering wires in plac for both ports The read write shown in Figure 24 was repeated again following the DTACK signal rectifications The results obtained were xactly as the previous results when DTACK was open circuit The symptoms no longer indicated an obvious fault other tha
41. e kernel would also be responsible for memory configuration of different pages in extended mode and ensuring that communication between the two F68k processors tookeplace correctly If a portion of shared memory was allocated as a mailbox with a division for each processor then the kernel would also be responsible for passing messages into and reading from the correct mailbox In this way the user would not need to be concerned with specific addresses but could simply pass a message via a kernel function and wait for a response as appropriate to the specific application Figure 34 shows a proposed hierarchy of the dual processor F68k system with shared memory and kernel Application Software Software written for a parallel system Fli ght 68000 Monitor Existing monitor with useful commands Figure 34 Software hierarchy Dual Processor Shared Memory 68000 System Page 39 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 13 Conclusions The projects main objective was to develop a prototype shared memory module The shared memory module was to act as a bridge between two Flight 68000 F68k microprocessor training systems thus becoming a parallel architecture with the tightest form of coupling The parallel architecture resulting from the integration of the shared memory module and two F68k processors is intended for use within the microprocessor laboratory at the University of Hertfordshire as an educatio
42. e to the eye The LED makes diagnostics easier and gives a visual indication of function to users of the shared memory module which is important considering the intended educational use 8 5 Bus signal isolation A standard way of isolating bus signals is by using tri state bus transceivers or buffers The 7 244 is a standard and readily available buffer and the 74HC245 a standard and readily available transceiver The buffers are needed to isolate the address and control buses because these buses are unidirectional The data buses are bidirectional and therefore require the use of transceivers where the direction can be switched by the control bus read write R W signal The access granted output from the arbitrator is connected to the chip enable pins of each buffer and transceiver associated with the corresponding request access input When access has been granted the buffers and transceivers are seen only as a very low resistance but when access has not been granted and the buffers and transceivers are not enabled they are seen as a very high impedance and therefore do not interfere with other bus signals that may have been granted access Dual Processor Shared Memory 68000 System Page 23 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 8 6 DTACK and RAM DTACK is also controlled in the same manner as other bus signals When the addf ss buffers are not enabled DTACK 15 also not asserted but whe
43. ed and the MO command stayed in a loop until the F68k was reset as it should have done with only the current A80000 to A9FFFF address range being decoded This indicated that when FF0000 and above was addressed DTACK was not being generated and was therefore unused area as the manual and memory map also stated The conclusion was reached that the address range 480000 to A9FFFF where shared memory was mapped to was in use by the F68k and therefore the shared memory module had to be mapped in to a different location of the address map As FF0000 and above had been tested and determined unused the address decoding of the shared memory module needed modifying to shift shar d memory up the address map to FF0000 The new address decoding needed to decode the highest eight bits of the address bus to Ajo With the following Boolean expression memory _ access A3 An Az Az Ajg Ag Ap A6 Dual Processor Shared Memory 68000 System Page 30 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 This expression required an eight input NAND gate which was not pin compatible with the eight input OR gate already in place The address decoding for the output latch did however contain eight input NAND gates U1 2 3 8 9 and 10 and with some modifications to the PCB tracks by soldering wires one of these per port could be used instead This meant however that the output latch would have no address decoding which mean
44. equest B request grant Bgrant Description 0 0 First come first served Both request access simultaneously or when one has already been granted access 0 1 1 A requests access no contention 1 0 1 0 requests access contention 1 1 1 1 Neither request access contention Figure 10 Truth table of first come first served arbiter F68k processor Arbiter Shared Connected to port 1 memory First come first F68k processor en Connected to port 2 Figure 11 Block diagram of arbitration Dual Processor Shared Memory 68000 System Page 15 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 6 5 2 Buses When a processor does not desire access to the shared memory it will be in the state of accessing local memory or remaining idle When a processor is in either of these states its bus signals must be isolated from the shared memory buses If this was not done th n processors bus would always be connected to shared memory and the buses of the other processor A situation like this would eliminate the purpose of arbitration andycause corruption of both processors buses resulting in a useless system Figure 12 shows a block diagram of the system including arbitration and the bus isolators request EN request First come first EN grant F68k Shared Bus F68k processor memory isolator processor Connected Connected gt gt OY Processor A b
45. f all such people is gratefully acknowledged In particular the help of the following people at the University of Hertfordshire deserve my gratitude Professor Reza Sotudeh Project Supervisor for providing motivationgideas and continued support throughout the project Mr Tony Crook Technical Manager for assisting with many practical decisions and guidance for designing the printed circuit board and subsequent build Mr Stephen Passmore Technician for providing assistance with access to the microprocessor laboratory and making available the necessary equipment when needed Dual Processor Shared Memory 68000 System Page 3 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 3 Contents 1 Abstract 2 2 Acknowledgements 4 3 3 Contents 0 4 3 1 Table of figures 5 4 Glossary and Abbreviations 000000 6 5 Introducion _ w 2 7 5 1 Design brief and discussion 2 7 5 2 educational tool 7 5 3 Project aims and objectives 0 02 8 5 4 This report 5 0 05 05 00 0 8 6 Background _ 9 6 1 The Motorola 68000 9 6 2 Flight 68000 training system 0 0 10 6 3 Flynn sTaxonomy 11 6 4 Computer memory C F Z 13 6 5 Shared memory module overview 200000000000 14 651 Arbitration 14 652 Buses 16 7 Research 00000000000 17 7 1 Literature search ________ 16 17 7 2 Hardwareresearch ee 17 7 3 Software 0
46. forms 0040 0080 Dual Processor Shared Memory 68000 System Page 61 of 72 Witts BEne hons Electrical Electronic Engineering 2003 ii il 11111 m it 8000H 4000H Page 62 of 72 Dual Processor Shared Memory 68000 System Witts BEne hons Electrical Electronic Engineering 2003 Appendix L Data Bus Walking 15 Test Waveforms gt 0020H 0040H Dual Processor Shared Memory 68000 System Page 63 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 E Lo 2000 4000 Dual Processor Shared Memory 68000 System Page 64 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 2 US 8000H x 45 B 5 EY S Dual Processor Shared Memory 68000 System Page 65 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Appendix M Flight 68000 Circuit Diagram Coates R The Flight 68K Training System User Manual Flight Electronics Ltd 3 Ed 1997 Appendix F II ii r E F EEE mam je 33 aL in TENES cb udis 0 9 TT gi ANN 08998 DN 900000 kaka aka P EZE k k ks lt El ELE de Ll o
47. gineering 2003 15 5 Final Gantt chart Gantt Chart by week 2 Summer Term re wl ll 5 gt gt c ana 22 mn m lt lt lt s S ojal a t 05 Hol 15 March 2003 09 March 2003 02 2003 15 February 2003 ea m x c e cu Page 45 of 72 19 January 2003 12 January 2003 Hal BIO 0 ojo 5 t PIE 151 bi ho 15 December 2022 10 Mov ember 2022 Literature Research Brainstorming initial designing Autumn Term E du bh 5 5 Spring Term C C3 1 lt 3 8138313 T T s u Z ce Mj 3 7 56 LJ 1 R hI Bo BO Feasibility Stud Investigate Resources Hardware design Component Ordering seminar presentation Programming PCB design Test amp Debugging Poster Presentation Contingenc Milestone assessment criteria set deadlines N Dual Processor Shared Memor
48. h and comect orientation 25 Figure 22 Initial C test program 2 28 Figure 23 Monitor terminal window showing read write command _ 02 29 Figure 24 Monitor terminal window following address bus corrections 30 Figure 25 Modifiedaddress decoding 31 Figure 26 SMM under test showing modification 32 Figure 27 Address decoding waveform___ 0 0 A 4 o 32 Figure 28 Bus arbitration waveform 0 4 4 4 4 4 4 34 Figure 29 Table to show values used for walking Is test 35 Figure 30 SIMDitest program 1 0 0 0 0 0 000000 36 Figure 31 SIMD test program subroutine 00 0 00 0 0 o 36 Figure 32 Disassembled test program 0 0 0 0 0 0 37 Figure 33 Compiler error message 000000222 38 Figure 34 Software hierarchy 39 Dual Processor Shared Memory 68000 System Page 5 of 72 4 Glossary Abbreviations Darren Witts BEng hons Electrical and Electronic Engineering 2003 Abbreviation Full meaning Description Inversion A Amperes AS Address Strobe 68000 output signal Address line x Address bus signal CE Chip Enable Logic chip input CPU Central Processing Unit CS Chip Select Logic chip input DC Direct Current DTACK Data Transfer Acknowledge 68000 control bus signal D Data line x Data bus signal EDS Embedded Development Studio Flight 68000 C compiler EPROM Erasable Read Only Memory F68k Flight 68000 training system FCx Function Code x 680
49. he results Equipment also to be put away and could not be left out from one test session to another The possibility of obtaining F68k processors inside the projects laboratory was investigated but found not to be possible If this had been possible then testing and debugging would have moved at a greater rate and been completed quicker and more fficiently The use of a logic analyser was not considered within the feasibility study but was found to be needed and was subsequently obtained There was approximately a one to two week delay for this 15 2 Cost analysis The parts list containing all parts used both before and after modifications to the circuit is contained in Appendix The total cost of all parts came to 160 96 of which a large proportion was for the Although the project had an initial budget of 50 no claims were made in the feasibility study to stick to this budget and all spending was authorised There were therefore no budget problems with the project Given that the eventual prototype did not include the extended expanded memory functions originally included in the design it isireasonable to expect that a PCB designed without those functions would be smaller and cheaper as might a PCB designed with a PAL replacing logic devices Total project time including development assembly test and rectification is estimated at 306 man hours The total number of meetings with the project supervisor including theo
50. it does still have uses particularly for educational purposes where it is sometimes necessary to show the operation of older systems Expanded memory allows more than one block of RAM pages to be located at a particular address range Switching is then performed in order to select the page required at any given time Paging also has some applications in data security because the main system RAM can be copied to another page as a backup process could be written to periodically perform this backup this is often called ghosting or shadowing Similar backup systems exist mainly for fixed storage such as computer hard disks in servers For applications wher extended memory is not required it is possible to relocate the additional pages within the first page memory map This is termed extended memory and it is possible to provide a method of enabling the user to configure the memory as expanded or extended as dictated by their particular application Figure 9 shows the location of the second page of memory in a two page system depending upon whether extended or expanded mode is being used Dual Processor Shared Memory 68000 System Page 13 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 RAM page 2 when in extended mode RAM page 2 when in expanded mode Address Bus Figure 9 Expanded Extended memory 6 5 Shared memory module overview 6 5 1 Arbitration As the system contains dual processors and
51. itiate memory transactions asynchronously which adds to the feasibility of a shared memory module Dual Processor Shared Memory 68000 System Page 7 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 A shared memory module counteracts the cost implications associated with two microprocessors by interfacing between two separate training systems For the study of single processor architectures the boards act as the original stand alone products but for studying dual processing the separate boards can be plugged into the shared memory module and a full parallel architecture is then at the students disposal 5 3 Project aims and objectives Listed below are the key objectives that need to be considered and accomplished in order to achieve the aim of designing a working prototype of a shared memory module which satisfies the design brief Research similar or related projects and literature Learn about and research parallel forms of computer architecture Learn about and research how two processors can work in parallel with the tightest form of coupling shared memory Learn about and research the MC68000 microprocessor Learn about and research the Flight 68000 training systems available within the university in particular how to use and interface to them Design and build circuitry to interface to the MC68000 training system Design and program software suitable for operating the completed hardware Test
52. lts Arbitration was the next stage in the circuit and the logic analyser was connected to the bus arbiter U13 The request input to the arbiter from port currently connected was active at logic low but the request input from the second port which was not connected was also present at logic low as was its corresponding output which meant that access had been granted by the arbiter to the disconnected port The second ports request signal was then traced backwards through the circuit to the address decoding and with the second port still disconnected the inputs and outputs were observed The logic analyser showed that the address decoding output was low andstherefore producing a request signal It became clear that this was because when either port was disconnected the inputs to the address decoding for that port were floating These floating inputs were being interpreted as logic high by the address decoding logic since the earlier modification had moved the shared memory address range to FF0000 the high floating inputs were seen as FF and therefore a request for shared memory This request from the disconnected port was being granted access by the arbiter because the request was being generated at power up first come first served whereas the connected port had a delay before the read write was initiated by a typed command A second F68k was obtained and the shar d memory module was connected to two processors at the same time
53. mpedance output capability was used A PAL would also facilitate future modifications or corrections more easily 14 3 Software The intended kernel could be produced in the future as part of another project The kernel could take different forms depending upon the depth of any such project The level intended for this project was to write a kernel that was loaded into RAM when required and provided a command line A more advanced kernel might include integration with the F68ks monitor Integration with the monitor would mean obtaining the monitor code listing and editing the EPROMs on which it is stored This would however provide the tidiest form of the kernel Any project undertaking software development for the shared memory module should take into consideration chapter 12 Dual Processor Shared Memory 68000 System Page 41 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 15 Project management 15 1 Resources The feasibility study conducted at the beginning of the project did not foresee any resource problems and no major issues were encountered during the project At the beginning it was sometimes difficult to obtain access to the microprocessor laboratory and when access was gained test equipment had to be arranged Making modifications to theycircuifwas also difficult within the microprocessor laboratory and often meant moving to projectsaboratory to make minor modifications and then back again to test t
54. multiprocessing and parallel architectures The parallel architecture allows a function to be divided Into smaller tasks that can be carried out concurrently thereby producing results faster than single processor systems In order for tasks to be completed by different processors thos processors must have a means to communicate with each other to return results or pass data and instructions Common methods of communication include serial and parallel ports or LANs such as Ethernet These methods termed loosely coupled due to the limited data transfer speeds that can be obtained for distances over which they operate First in first out FIFO shift registers are more tightly coupled because of their small propagation delay however the output from the shift register must normally be transferred into memory before being read by a processor Shared memory is considered the tightest form of coupling since the only propagation delays involved in transaction are the read and write times of the memory being used and any interface circuitry required 5 2 An educational tool The use of small microprocessor based training systems are widely used in educational laboratories to teach students the concepts architecture and programming of systems in both high and low level languages Not so common is the use of such systems for teaching the concepts of parallel processing Loosely coupled parallel processing can easily be demonst
55. n DTACK remaining open circuit but DTACK was verified and proved to be correct Further analysis with the logic analyser was conducted by tracing through the system from the beginning address decoding The logic analyser was placed on W1 and the inputs and output to this device were monitored when a read write was initiated Figure 27 shows the upper eight bits of the address bus used for decoding a request for shated memory The address bus is shown changing state during normal accesses to local memory prior to and following read write to shared memory The request signal U1 output is shown changing to a logic low state when all inputs are logic high during the read write This proved that the address decoding was performing correctly This test was repeated for port two U8 with the same results A23 22 21 A20 PONG Al7 _ 16 Figure 27 Address decoding waveform Dual Processor Shared Memory 68000 System Page 32 of 72 Darren Witts BEng hons Electrical Electronic Engineering 2003 The next stage in the circuit to be examined with the logic analyser was the combined output from the address decoding and the interrupt acknowledge U35B output This was measured as a logic low when a read write was initiated which was a valid active low request for shared memory to the arbiter The shared memory module was swapped around so that the second port could be tested this produced the same resu
56. n the address buffers are enabled DTACK active low is asserted and microprocessor recognises that access has been granted to it In some system designs DTACK needs delaying This is because microprocessorsyin these systems can access the memory faster than the memory can operate Appendix N shows that the read and write cycles of the 68000 are a minimum of four clock periods long The Flight 68000 uses a 10 2 clock as such each clock cycle is 100nSec giving a minimum read or write time of 4 100nSec 400nSec This means that the overall delay of the RAM and interface components including buffers arbitration tc must be less than 400nSec Appendix H shows the calculated access times of a read and aswrite cycle to access RAM which is deduced from the circuit diagram in Appendix D plus the device datasheets These calculations show that the maximum access time that a RAM device can have in order to work with the shared memory module is 318 4nSec A readily available device was the HM62256 10T which is a 32kbyte static RAM with an access time of 100nSec and therefore fulfils the requirements 8 7 Power supply The shared memory module requires an power supply providing 5 Volts to the board For simplicity it was decided to provide 5 regulator the LM7805 on board This enables a voltage input within the range 7 5 Volts to 35 Volts and allows the 7 5 Volt power supply that comes with the F68k to be used
57. nal aid The very first stages of the project were to research requirements of the shared memory module by gathering information about the Motorola 68000 microprocessor and the Flight 68000 training system Research was also conducted into software requirements of parallel systems and applications including Flynn s Taxonomy The different functions that were needed to fulfil the design requirements were identified and included arbitration and bus isolation Research provided n off shelf solution for the bus arbitration which saved development time The arbitrator andybus isolation was then included the detailed circuit design The initial circuit design was constructed on printed circuit board PCB because of the size of the circuit and the reliability that was needed The PCB was designed with the computer aided design package Protel which involved a steep learning curve and became an extra task within the project The extra time and learning involved in producing was however very worth while because the circuit is now available in a robust form that is available for future use and development if required Following circuit design and manufacture of the PCB testing was conducted to test for conformance to the design The initial stages of testing highlighted various missing tracks the which were due to labelling errors the circuit diagram The missing tracks were easily repaired by wire links
58. ncluded in the circuit for this purpose and is described in chapter 8 3 Externally the Motorola 68000 is seen as having a 23 bit address bus as it does not provide address line Ao with the consequence that odd addresses not be accessed Instead the 68000 provides an upper and lower data strobe UDS and EDS which are used to select an upper lower byte physical RAM chip Therefore the 64Kbytes of shared memory is split into an upper 8 bit memory block and a lower 8 010 memory block giving 64Kbytes or 32Kwords of shared RAM The number of address lines required 32 RAM is given by 32 Kbytes 2 27 summing powers gives 10 5 15 address lines needed The number of address lines that need to be decoded is therefore given by 23 15 8 for full address decoding The binary representation of the eight bits to be decoded is shown in Figure 13 23 22 21 20 19 18 17 16 Addressline Space 110 1 1 ASFFFF 64kbytes 1 0 1 0 14070 1 90000 1 0 1 0 07 0 0 ASFFFF 64kbytes 1 0 1 0 7 0 80000 Figure 13 Address decoding bits From figure Sit can be seen that the following Boolean logic expression is true between A80000 and A8FEFF expanded memory Shared access 22 As A 20 PET At When extended memory is selected address decoder needs to accept addresses between 80000 to A9FFFF The Boolean logic expression for the address decoder when
59. neering 2003 6 Background 6 1 The Motorola 68000 The 68000 microprocessor is manufactured by Motorola Incorporated It contains a 16 bit wide data bus and an internal address bus of 24 bits The 24 bit address bus means that the 68000 can address up to 2 6Mbytes or 8Mwords of RAM ROM or memory mapped peripherals Externally the address bus does not include the least significant bit Ao which means that odd addresses are not addressable Instead of Ao two data strobes are provided UDS Upper Data Strobe and LDS lower Data Strobe These data strobes are activelow signals and indicate whether the upper or lower byte of a data word is being addressed If an entire word is being addressed then both data strobes are asserted UDS and LDS can be used within a systems address decoding At the simplest level UDS and LDS can be connected directly to the chip select or chip enable input of two 8 bit wide data bus memory devices thus the upper and lower bytes ofthe word are stored in physically separate devices An important feature of the 68000 that differentiates it from other microprocessors such as the Philips 80C51 or 80C552 is its ability to carry out asynchronous bus cycles A handshaking signal is used as an input to the 68000 to inform it when an external memory device or peripheral has provided or responded to data on the bus This handshaking signal is called Data Transfer Acknowledge and is active low If DTACK is
60. of time is granted access so causing fewer contentions of the arbitration schemes given above with the exception of first come first served are capable of being implemented in software by the two processors involved communicating their priorities or time requirements to each other However for two processors to exchange such Dual Processor Shared Memory 68000 System Page 14 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 information they must access the shared memory and leave that information in memory for the other processor to read In accessing the memory contention may occur and therefore a method of hardware arbitration such as first come first served 15 essential With a first come first served arbitrator one processor can inform the other via software that it will be using shared memory for a specific amount of time and therefore not to attempt access If the other processor does still attempt access maybe due to a poorly written program or a corruption in receiving a message then the hardware arbiter will deny it thatyaccess and corruption of data will occur The advantage of using such a hardware and software arbitration scheme would be that the second processor will not waste time waiting for access Figure 10 shows the truth table for an active low first come fist servedharbiter The block diagram in Figure 11 shows the basic interconnections and logical structure of the arbitration A r
61. onnected to bus arbiter U 13 and the waveform prod dis shown Aeq Agnt Breq Bent 4 2 request Port 2 grant Figure 28 Bus arbitration waveform 11 2 3 Address bus walking 1s te A walking 1s test checks that each individ open circuits or short circuits between ual address line functions correctly by ensuring no l ess lines The test is carried out by monitoring the address bus with a logic analyser and performing a read or write to memory locations that cause the binary value of that address to increment by one address line each time with all others at logic low The table in Figure 29 shows the address values and the address line being tested Only the address lines used for actual upper eight decoding addres le to tested previously Also note absence Dual Processor Shared Memory 68000 System Page 34 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Binary address bus lines 232768 216384 28192 24096 22048 21024 2512 2256 2128 264 15 14 13 12 11 10 09 08 07 gt t2 Address Hex t3 400 800 1000 2000 4000 8000
62. ontradict each other if poor code is ever written for them possibly resulting in corruption of stored data However it 15 not known which port will be connected to the master processor during use To solve this problem a D Type flip flop 74HC74 is connected to each latch and when the D Type is triggered by the address decoding shown in Figure 19 after arbitration the appropriate latch is enabled and no reset is provided other than a power down of the shared memory module This effectively means that as far as the hardware is concerned the first processor to write to the output latch is considered master from then on and granted access to the latch Software could be written so that the master includes an initialisation routine in which the output latch is written to and the memory configured The outputs from the latch are controlled directly from the latch address decoder following arbitration so that the latch is transparent when being written to and latched when a write is completed The circuit for this is Shown in Figure 20 Agranto From arbiter Output Latches Figure 20 Output latch circuit Dual Processor Shared Memory 68000 System Page 22 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 8 4 Arbitration The arbitrator must be capable of accepting inputs or requests from the address d coding for RAM and the output latch for each microprocessor and therefore requires four inputs The arbitrator h
63. r 800011 800013 Figure 4 F68k PI T addresses 6 3 Flynn s Taxonomy One of the most common classifications of parallel architectures was stated by Michael J Flynn in 1966 and is known as Flynn s This taxonomy considers the two bit streams within computer architectures instructions opcodes and data operands The taxonomy details four classifications that define where in the architecture the instructions and the data reside irrespective of whether they are loose or tightly coupled Single Instruction Single Data SISD is the classification defining any single processor system such as a standard personal computer in which data and instructions are stored in the same memory block as shown in Figure 5 Dual Processor Shared Memory 68000 System Page 11 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Instructions Figure 5 SISD Architecture Figure 6 MIMD Architecture Multiple Instructions Multiple Data MIMD is a very broad classification and includes collection of SISD systems that can communicate with each other for example a number of PCs on a local area network MIMD is represented in Figure 6 Single Instruction Multiple Data SIMD specifies systems in which the instructions are stored a shared location and can accessed multiple processors each executing those same instructions on their own individual data SIMD is represented in Figure 7 In
64. r E Flight Isternatianal Lea ttlm Bed 195 Dual Processor Shared Memory 68000 System Page 66 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 000000019 coooooo 1995952222353 812710727522 LLL LIL LL LL LI L PEER ELEEELEEE ES Ti TE _ LS D y J Fligrt Electronice 52222090 ja 10195532222 2 Tu Lamar j0 37 095902 22222 4 4 q lt a lt ELLEN m w I ay Ura aa qa B R Hd i 1 AME Page 67 of 72 Dual Processor Shared Memory 68000 System Darren Witts BEng hons Electrical and Electronic Engineering 2003 uras LSC Fl ke Ba i a lt lt kim Ta De Flight international Lea Dual Processor Shared Memory 6800
65. r through holes were increased from the default size of 0 7mm to 1mm Power tracks were increased to 2mm width and signal tracks were set to 1mm The devices were placed in position manually by visually looking for the shortest route for the displayed nets and aiming to keep associated devices together such as all RAM devices The power connector was located at the top edge of the board so that it was easily accessible and LEDs were located next to it so that they were easily visible The completed PCB design was sent to a third party forzmanufacture PCBPool which took approximately two weeks to complete Once the PCB was obtained the components were soldered in place integrated circuits were placed into DIL sockets for easy removal replacement during testing this is particularly important for a prototype Appendix F shows the PCB layout and measurements Appendix M shows the Flight 68000 circuit diagram including the pin conn ctions of the bus expansion connector on page 5 The bus connector is a 64pin 2 rows of 32 type Q right angled DIN41612 No decisions were needed in choosing this connector because it must mate with the bus expansion connector of the Flight 68000 board The datasheet for this connector was obtained and the PCB footprint was drawn in Protel During assembly of the components onto the PCB it was noticed that the DIN41612 bus connectors sat too far away from the edge of the PCB This resulted in the connec
66. rated by interfacing standard personal computers at the serial parallel ornetwork ports On the other hand tightly coupled parallel processing can only be achieved with specifically designed multiprocessor systems The University of Hertfordshire s microprocessor training laboratory contains Motorola MC 68000 microprocessor training systems by Flight Electronics Ltd Flight s catalogue does not include a multiprocessor training system and research conducted at the beginning of this project did not reveal anyssuch systems by other manufacturers The absence of multiprocessor systems for educational use may be attributed to the significant cost increase of a system containing two Without a training system the student is at a disadvantage since the practical aspects cannot be explored or the theory related and tried The price of memory is no longer a major limiting factor of a systems design Acceptable memory prices together with the fact that sharing memory between two processors provides the tightest form of coupling lead to the designing of a shared memory module intended for use within the microprocessor laboratory at the University of Hertfordshire The Flight Electronics 68000 training systems used within the laboratory contain sufficient expansion ports to access all bus signals see Appendix M page 5 and therefore accommodate a shared memory module The Motorola MC68000 microprocessor also has the ability to in
67. rical and Electronic Engineering 2003 14 Further development The shared memory module manufactured during this project was a prototype and as such there are many improvements that should be considered before any further units are produced 141 PCB improvement The PCB would need to be redesigned to accommodate the modifications that took place as a result of test and debugging An improved physical layout of the PCB could also be produced where components are located in number order This would make components easier to find when tracing faults The notch that was incorporated into the PCB shape to clear the ribbon cable connecting application boards to the F68k ideally needs a larger clearance to make insertion of the shared memory module easier An increase from 10mm to 15mm would be appropriate The footprint for the bus connectors and P2 needs to be moved closer to the edge of the circuit board A small problem was found when assembling that meant that a plastic rim on the connectors did not overhang the PCB but instead caused the connector to sit at an angle This was easily solved however by shaving off the plastic rim from the connectors 142 Circuit improvement A significant amount of PCB space could be saved by incorporating much of the circuits logic into a programmable logic array PAL Address decoding and chip select logic could certainly be included inside a PAL and possibly bus isolating buffers if a PAL with high i
68. rong bus signal could have potentially damaged the F68k microprocessor board No voltages were measured on any bus pins and therefore no faults were found at this stage Dual Processor Shared Memory 68000 System Page 27 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 11 Functional Test Results and Debugging 11 1 Methodolosy for functional tests Following successful tests and rectification of the above power tests functional testing was carried out Functional testing involved inserting all ICs into the circuit andjconnecting the shared memory module to one or two Flight 68000 microprocessor boards as the individual tests required The following functional tests were conducted Memory write Memory read Address bus walking 1s test Data bus walking 1s test SISD test SIMD test MISD test MIMD test O0 t D The steps taken during testing and the results of these tests are detailed below 11 2 Results and rectifications for functional tests 11 2 1 Memory read and write The initial tests for memory read and write were carried out by writing a C program with a pointer to the shared memory address range starting at A80000 The C code used for this is shown in Figure 22 which was entered using the Crossware C compiler of the Embedded Development Studio EDS include lt stdio h gt void main int mem mem 0xA80000 80000 is first shared memory location mem OxAAAA Pla
69. ry and practical is estimated at 10 15 3 Time analysis Chapter 15 4 shows the initial Gantt chart created at the start of the project Efforts were made to adhere to the initial Gantt chart throughout the project but where this became impossible the Gantt chart was updated The final Gantt chart at the end of the project following all updates is shown in chapter 15 5 A comparison between the initial and the final Gantt charts shows that the majority of tasks were completed on time Component ordering was not completed by the time stated in the initial Gantt chart but this was due to further components being ordered for modifications during the testing phase and had no knock on effect with any other tasks The two main tasks that were not completed at their initial deadlines were programming and testing The start of testing was delayed due to the PCB having to be designed and ordered before it could be tested Assembly of the circuit did not take any longer than initially planned for but it was pushed backwards also due to the design and ordering of the PCB Testing was the task that had the main affect on the time plan A large number of errors were found during testing which meant a lot of fault finding and rectification had to be done The Dual Processor Shared Memory 68000 System Page 42 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 initial test plan had probably only allowed enough time to test a circuit
70. selected RAMdespite PAGE Figure 16 RAM chip selectlogic truth table The outputs of the chip select decoder also need combining to produce the required operation from the 74HC138 output The following Boolean logic expression shows the combinational logic required to achieve this RAM chip selects are active low CSL Q Q Chip select lower byte 1 CSU Q Q Q Q Chip select upper byte page 1 CSL P2 Q 0 Chip select lowerbyte page 2 CSU P2 Q Q Chip select upper byte page 2 The circuit that satisfies these expressions is shown in Figure 17 P2 74LS138 Figure 17 RAM chip select circuit diagram Dual Processor Shared Memory 68000 System Page 20 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 8 2 Simulation of address decoding design The inputs and outputs of the circuit shown in Figure 17 were simulated in Circuitmaker SPICE The waveform resulting from the simulation is shown in Figure 18 where the upper and lower byte outputs can be seen responding correctly to the upper and lower data strobes and the page select signal When UDS LSD are low and PAGE is low meaning page 1 is selected then U_1 Upper byte page 1 and L_1 Lower byte page 1 are also asserted low as expected Next PAGE goes high and therefore selects page 2 but UDS and LDS remain low After a propagation delay U_1 and L_1 go high and U_2
71. structions Figure 7 SIMD Architecture Multiple Instructions Single Data MISD is the opposite of SIMD in that it specifies systems in which the data is stored in a shared location and can be accessed by multiple processors each executing their own individual instructions on that same data MISD is represented in Figure 8 Dual Processor Shared Memory 68000 System Page 12 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Instructions Instructions Figure 8 MISD Architecture Coupling two processors with shared memory enables those processors to communicate via that shared memory storing and retrieving data and instructions as and where necessary Therefore it is perfectly possible to achieve each of the above classifications with the shared memory module that is the focus of this project Any system employing multiple processors with shared memory must also include local memory that is dedicated to each processor Without any local memory each processor might have no choice but to wait before gaining access to the shared memory thereby defeating the object of faster parallel processing 6 4 Computer memory There are other aspects of computer architect re associated with memory that are not specific to parallel architectures One such aspect is that of paging or expanded memory Expanded memory is more common in older systems where the number of address bits on a microprocessor were limited however
72. t that the output latch function had to be sacrificed and this in turn meant that the choice of extended or expanded modes was sacrificed This option was still chosen because it was the simplest choice given the time that remained Another issue that had to be considered and was fortunately known before this modification was done is that the 68000 microprocessor places its address bus highjwhen generating an interrupt This would have been interpreted by the shared memory module address decoding as a valid request for shared memory which would have opened the shared memory bus to the microprocessor bus thereby corrupting the interrupt data To avoid the problem of invalid shared memory access during interrupts an interrupt acknowledge signal needed generating This was done by recognising the 68000 function code outputs as interrupt through an AND gate This signal also had to be combined with the address strobe signal which signifies the function codes being valid The interrupt acknowledge signal was combined with the address decoding output as shown in Figure 25 Figure 25 Modified address decoding This modification involved adding one AND gate U37 and two OR gates U36 per port to the circuit These devices were not present on the PCB and so a stripboard circuit was constructed and wired to the PCB with the stripboard being insulated by a paper backing and taped to the back of the so that it remained reliabl
73. the table above does not take into account that some of the circuitry is idle when others are not i e Port 1 buffers not enabled when Port 2 buffers are due to arbitration and the quiescent current of the disabled devices would be lower and will account for some of the reduction in calculated power from measured power Dual Processor Shared Memory 68000 System Page 59 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Appendix J Current Drawn Designation U1 2 3 8 9 10 U4 11 U5 U6 27 07 12 28 U13 U14 U15 U16 23 24 25 26 U17 18 21 22 U19 20 U29 U30 U31 32 33 34 Voltage Power Calculations for Final Circuit Device Number of 74HC30 0 00 74HC4078 2 00 74HC11 0 00 74HC08 2 00 74HC04 3 00 74F786 1 00 74HC123 1 00 74 74 1 00 74HC244 5 00 74HC245 4 00 74HC373 0 00 74HC138 1 00 74HC02 0 00 62256 4 00 7 5Volts to 12Volts DC Power At 5Volts 5 1 05 5 25Watts At 7 5Volts 7 5 1 05 7 9Watts At 12Volts 12 1 05 12 6Watts Dual Processor Shared Memory 68000 System Max Current mA 50 000 0 001 50 000 50 000 50 000 55 000 50 000 50 000 50 000 70 000 70 000 50 000 50 000 15 000 TOTAL CURRENT Total mAmps 0 000 0 002 0 000 100 000 150 000 55 000 50 000 50 000 250 000 280 000 0 000 50 000 0 000 60 000 1045 002 Page 60 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Appendix K Address Bus Walking 1s Test Wave
74. tor sitting at an angle due to a plastic rim on the edge of the connector This was solved by shaving off the plastic rim with no adverse affects It was noticed during design stage that the auto routed tracks for each ICs decoupling capacitor did not always connect directly to the power pins of the IC they were located next to Attempts were made corr ct this but any manual modifications affected those tracks that had been automatically routed The decision was made to leave the tracks routed automatically and solder wires directly between the decoupling capacitors and the IC power pins after manufacture Dual Processor Shared Memory 68000 System Page 26 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 10 Power Test Results and Debugging 10 1 Methodology for power tests The following tests were conducted after all IC sockets and other components been soldered in place but ICs themselves were removed Visual inspection Voltage measurement of supply Current measurement of supply Voltage measurement of IC pins Voltage measurement of all bus connector pins The steps taken during testing and results of these tests are detailed below 10 2 Results rectifications for power tests 10 2 1 Visual inspection The visual inspections involved looking for dry joints unsoldered or poorly soldered joints solder splashes causing a short circuit and incorrectl
75. ual Port Memory for Multiprocessor Applications AN1707 Motorola Inc rev 0 ATM Switch with Shared Memory A Simple Model AN1299 Motorola Inc rev 0 Technical Report Writing The Institute of Electrical Engineers 1997 Burns R W et al Units and Symbols for Electrical and Electronic Engineering The Institute of Electrical Engineers 1992 Dual Processor Shared Memory 68000 System Page 48 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 18 List of Appendices Appendix Appendix B Appendix C Appendix D Appendix E Appendix F Appendix G Appendix H Appendix 1 Appendix J Appendix K Appendix L Appendix M Appendix N Appendix O Flight 68000 Memory Map Flight 68000 Memory Map with Initial Shared RAM Flight 66000 Memory Map with Final Shared RAM Shared Memory Module Initial Circuit Diagram Shared Memory Module Final Circuit Diagram PCB Layout and Measurements Parts List Ram Access Time Calculations Power Calculations for Initial Circuit Power Calculations for Final Circuit Address Bus Walking 15 Test Data Bus Walking 15 Test Flight 68000 Circuit Diagram 68000 Read Write Cycle Timing Diagram Users Guide Dual Processor Shared Memory 68000 System 50 51 52 53 54 55 56 58 59 60 61 63 66 71 72 Page 49 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 Appendix Flight 68000 Memory FFFFFF Unused egal Address
76. uitable one was found The decision was therefore made to design and construct printed circuit board which became an extra major task for the project plan PCB was designed using Protel 99SE available in the Project Laboratory The following issues had to be considered when designing the PCB Board dimensions Board shape Board silkscreen top bottom layer print Track sizes Hole sizes Position of devices Number of track sides Number of component sides The board dimensions and shape determined the overall outline which was drawn manually within Protel to the desired measurements The required width of the board was determined by placing two F68k boards adjacent to eachvother with the bus expansion connectors lining up one on top of the other Figure 21 shows the measurement taken for the board width and also the intended orientation when mounting the board for use Figure 21 PCB width and correct orientation The PCB height was kept to the minimum possible so that it was more portable and easily stored The minim m height was determined by the amount of components on the shared memory module and their layout The components were placed on one side of the PCB because placing standard DIL components both sides would not have saved any space and made design and trouble shooting harder As components were only on one side only the component side needed a printed silkscreen The silkscreen was designed to show the
77. uses Shared memory buses Processor B buses Figure 12 Shared memory module block diagram Dual Processor Shared Memory 68000 System Page 16 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 7 Research 7 1 Literature search A literature search was carried out using the online databases INSPEC and IEEE Xplore to search for relevant journal articles Motorolas web site was searched fomdatasheets relating to the MC68000 microprocessor and application notes that were relevant to the project General searches were also conducted on the internet for any relevant information 7 2 Hardware research A search was conducted on the internet to see if any similar products were already in production including the Flight Electronics web site No similar products were found by Flight Electronics or any other manufacturer The only results found were forindustrial systems of which no design details were given as might be expected for commercial reasons Detailed hardware design and implementation of information gained from the literature search starts in chapter 8 7 3 Software research Research was carried out into the requirements of the kernel The kernel needs to demonstrate the functions of the shared memory module and allow others to explore them Research was conducted into specific areas such as software arbitration including semaphores inter process communications including mailboxes polling and interrupts an
78. y 68000 System Darren Witts BEng hons Electrical and Electronic Engineering 2003 16 References 1 MC68000 8 16 32 Bit Microprocessors User s Manual MC68000UM 99 Ed Motorola Inc p11 2 2 Coates The Flight 68K Training System User Manual Flight Electronics Ltd 3 Ed 1997 p4 1 3 Coates R F The Hight 65K MKII Training System User Manual Flight Electronics Ltd 3 Ed 1997 11 2 4 Flynn Michael Very High Speed Computing Systems Proceedings of the IEE Vol 54 1966 pp 1901 1909 Dual Processor Shared Memory 68000 System Page 46 of 72 Darren Witts BEng hons Electrical and Electronic Engineering 2003 17 Bibliography 1 2 10 11 12 13 14 15 16 Catanzaro Ben Multiprocessor System Architectures Sun Microsystems 1994 Bacon Jean The Motorola MC68000 Prentice Hall 1986 Wilcox Alan D 68000 Microcomputer Systems Prentice Hall 1987 Walter Triebel A and Singh Avtar The 68000 and 68020 Microprocessors Prentice Hall 1991 Kane Gerry 68000 Microprocessor Handbook McGraw Hill 198 1 Coates R The Flight 68K Training System ser Manual Flight Electronics Ltd 3 Ed 1997 Bolton W Microprocessor Systems Longman 2000 Clements Alan Microprocessor Systems 68000 Hardware Software and Interfacing PWS 1987 Culler David E Singh Jaswinder Pal and Gupta Anoop Parallel Computer Architecture hardware software approach Morgan K
79. y orientated components 10 2 2 Voltage and current measurements The voltage and current measurement of the supply was carried out by connecting to a bench power supply with digital displays of those quantities The bench power supply also has current limiting so this avoided any problems that would have been encountered if the had a major fault such as a short circuit between power lines The calculated and measured power values are given in Appendix I 10 2 3 Voltage at IC pins A voltage measurement was taken between the ground and power pins of each IC socket to test for the correct supply voltage approximately 5V as a means of identifying any open circuits A fault was discovered atthis stage where some IC positions did not have any voltage across the power pins but did have a voltage to the positive pin when referenced to the power supply zero volts This indicated an open circuit on the zero volt line Resistance measurements were taken with the circuit powered down and the open circuit identified The cause of this fault was examined and found be an error in which the netlist contained two separate ground nets which were not connected together The fault was fixed by soldering a link between appropriate points on the two ground nets No further faults were found at this stage 10 2 4 Voltage on bus connector Measuring the voltages on the bus connector pins was a very important test because any power connected the w
Download Pdf Manuals
Related Search
Related Contents
Zanussi ZKG6010 User's Manual Hasselblad 503 CWD - Digital Anniversary Kit User's Manual ボアホールスキャナーシステム BSM Marley Modulus Cooling Tower User Manual Copyright © All rights reserved.
Failed to retrieve file