22.09.2015 Views

of Microprocessors

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

MICROPROCESSORS 163<br />

conjunction with read/write being low. All signals remain stable until State 7<br />

when the address and data strobes are removed. Address and data themselves<br />

remain for one additional half-clock. Since valid data and address completely<br />

overlaps read/write and the data strobes, there is no problem in using<br />

transparent latches for output registers as there is in the 6502.<br />

The read-modify-write cycle is shown in Figure 5-5. Most highperformance<br />

minicomputers and mainframes use this type <strong>of</strong> cycle, which is<br />

shorter than separate read and write cycles because the address is sent out only<br />

once, to speed up certain instructions such as "increment memory." In the<br />

68000, it is actually longer (10 clock cycles instead <strong>of</strong> 4 + 4) and used only<br />

for interprocessor communication in a multiprocessor shared-memory system.<br />

The idea is to link the testing (read) and setting (write) phases <strong>of</strong><br />

memory flag manipulation such that no other processor can test or change<br />

that same flag between the two phases. Only one 68000 instruction, called<br />

appropriately enough Test And Set, uses the read-modify-write cycle. Its<br />

distinguishing feature is that Address Strobe remains active during both the<br />

read and write halves <strong>of</strong> the cycle, which should prevent the bus arbitrator in<br />

a multiprocessor system from giving control to another processor between the<br />

halves. Since the Test And Set instruction does very little (other instructions<br />

are much more useful for single-processor flag manipulation), its use can be<br />

avoided and this type <strong>of</strong> bus cycle ignored in a simple system design.<br />

Most <strong>of</strong> the time, 68000 bus cycles are executed back-to-back with no<br />

dead time between State 7 <strong>of</strong> the previous cycle and State 0 <strong>of</strong> the next cycle.<br />

This is due in part to pipelined internal operation in which the next<br />

instruction is <strong>of</strong>ten read from memory while the previous one is still<br />

executing. There can, however, be any number <strong>of</strong> idle clock cycles between<br />

bus cycles, which causes problems when interfacing to I/O chips designed for<br />

the 6800 (Motorola's original 8-bit microprocessor) and the 6502, which<br />

require uniformly spaced bus cycles. The 68000 thus <strong>of</strong>fers a "6800- (6502)<br />

compatible bus cycle" option. At all times while power is applied and the<br />

clock is running, the 68000 will generate a uniform rectangular wave called<br />

B MHz CLOCK<br />

----{C===================:::Jf-----<br />

FUNCTION CODE :::x _<br />

ADDRESS BUS<br />

ADDRESS STROBE ~'-<br />

-----JI<br />

READI WRITE<br />

UDS, LOS<br />

DTACK<br />

DATA BUS<br />

ZJ ,'--- L.l./7777Z72:...::...::..:.~<br />

~'- --'I ''-__--'1<br />

~~~ W0/ff$ffiW&&'iWA I//l/ll/ffi<br />

-----------(.....::.r- ~"},,~R~EA~D~DA~TA~<br />

--

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!