species8350 said:
Hi,
I would like to understand the electroncics of computer memory and processors.
In particular, I would like to understand how information is held and manipulated.
I have had a look on the Web, but haven't been able to find simple explanations.
If you have come across such a site, please would you post the url.
thanks
S
PS. For interest only
-------------
Listen up good:
Digital processing is accomplished in binary, using +5V and 0 V as
logic "1" or "HI" and logic "0" or "LO".
From its pins the microprocessor controls three sets of wires:
1) The data bus, typically 8 wires for 8 bit processors
2) The 16 address bus wires (typically for 8 bit processors)
3) And several control wires, which when LO enable writing, reading,
and whether it is intended to be memory or input/output (I/O).
The address "number" composed of the binary values on the address wires
locates where in memory data shall be stored to or be fetched
from by the data bus, the control wires control what operation occurs,
whether it is read from or written to, and whether it routes data from
the memory or input/output ports. The address numbers thus do double
duty in the two spaces, memory and I/O. The data bus is bidirectional,
reading inputs to the processor or writing outputs from the processor
data bus wires.
The clock lets the processor do things one thing at a time, and each
operation takes a certain number of clock cycles. That won't be very
important till later, however. The processor executes programs by
reading a byte from starting point in address space, usually starting
after power-up at address zero, but it could be near the top of memory
as well, and it is for many processors. That byte is assumed to be a
command byte, and the command byte is looked up to see how many data
bytes will follow it, then those next bytes are fetched one at a time
by incrementing the address number, and the operation on that data as
it is specified in the processor's instruction set are executed.
A command is typically just one byte, doing an internal math operation
or an already specified I/O, or it is followed by a second byte, which
is often a databyte, and the proper operation on or with that byte is
performed, or the command byte is followed by two bytes, either two
data bytes, or these are to be used as an address.
In addition, the processor has the ability to change the address
number in its address register so that it effectively "jumps" to a
new location in memory where it continues executing code, or it may
jump only on the condition that some operation has caused the setting
of an internal "flag" in the processor on the basis of the operation's
result. This allows conditional decisions. Example: If a subtraction
results in a zero, only then jump to address NN, where N is a byte.
Or a jump may be unconditional so the program loops unless it jumps
out of the loop.
-Steve