IDT7006S Integrated Device Technology, IDT7006S Datasheet - Page 19

no-image

IDT7006S

Manufacturer Part Number
IDT7006S
Description
High-speed 16k X 8 Dual-port Static Ram
Manufacturer
Integrated Device Technology
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
IDT7006S100F
Manufacturer:
IDT
Quantity:
200
Part Number:
IDT7006S100FB
Manufacturer:
IDT
Quantity:
200
Part Number:
IDT7006S100G
Manufacturer:
IDT
Quantity:
509
Part Number:
IDT7006S100GB
Manufacturer:
IDT
Quantity:
509
Part Number:
IDT7006S100J
Manufacturer:
IDT
Quantity:
482
IDT7006S/L
HIGH-SPEED 16K x 8 DUAL-PORT STATIC RAM
be handled via the initialization program at power-up. Since
any semaphore request flag which contains a zero must be
reset to a one, all semaphores on both sides should have a
one written into them at initialization from both sides to assure
that they will be free when needed.
USING SEMAPHORES—SOME EXAMPLES
application as resource markers for the IDT7006’s Dual-Port
RAM. Say the 16K x 8 RAM was to be divided into two 8K x
8 blocks which were to be dedicated at any one time to
servicing either the left or right port. Semaphore 0 could be
used to indicate the side which would control the lower section
of memory, and Semaphore 1 could be defined as the
indicator for the upper section of memory.
Dual-Port RAM, the processor on the left port could write and
then read a zero in to Semaphore 0. If this task were success-
fully completed (a zero was read back rather than a one), the
left processor would assume control of the lower 8K. Mean-
while the right processor was attempting to gain control of the
resource after the left processor, it would read back a one in
response to the zero it had attempted to write into Semaphore
0. At this point, the software could choose to try and gain
control of the second 8K section by writing, then reading a zero
into Semaphore 1. If it succeeded in gaining control, it would
lock out the left side.
a one to Semaphore 0 and may then try to gain access to
Semaphore 1. If Semaphore 1 was still occupied by the right
side, the left side could undo its semaphore request and
perform other tasks until it was able to write, then read a zero
into Semaphore 1. If the right processor performs a similar
task with Semaphore 0, this protocol would allow the two
Initialization of the semaphores is not automatic and must
Perhaps the simplest application of semaphores is their
To take a resource, in this example the lower 8K of
Once the left side was finished with its task, it would write
SEMAPHORE
WRITE
L PORT
REQUEST FLIP FLOP
D
0
READ
SEMAPHORE
D
Q
Figure 4. IDT7006 Semaphore Logic
6.07
processors to swap 8K blocks of Dual-Port RAM with each
other.
even be variable, depending upon the complexity of the
software using the semaphore flags. All eight semaphores
could be used to divide the Dual-Port RAM or other shared
resources into eight parts. Semaphores can even be as-
signed different meanings on different sides rather than being
given a common meaning as was shown in the example
above.
disk interfaces where the CPU must be locked out of a section
of memory during a transfer and the I/O device cannot tolerate
any wait states. With the use of semaphores, once the two
devices has determined which memory area was “off-limits” to
the CPU, both the CPU and the I/O devices could access their
assigned portions of memory continuously without any wait
states.
memory “WAIT” state is available on one or both sides. Once
a semaphore handshake has been performed, both proces-
sors can access their assigned RAM segments at full speed.
tures. In this case, block arbitration is very important. For this
application one processor may be responsible for building and
updating a data structure. The other processor then reads
and interprets that data structure. If the interpreting processor
reads an incomplete data structure, a major error condition
may exist. Therefore, some sort of arbitration must be used
between the two different processors. The building processor
arbitrates for the block, locks it and then is able to go in and
update the data structure. When the update is completed, the
data structure block is released. This allows the interpreting
processor to come back and read the complete data structure,
thereby guaranteeing a consistent data structure.
The blocks do not have to be any particular size and can
Semaphores are a useful form of arbitration in systems like
Semaphores are also useful in applications where no
Another application is in the area of complex data struc-
REQUEST FLIP FLOP
SEMAPHORE
Q
MILITARY AND COMMERCIAL TEMPERATURE RANGES
D
SEMAPHORE
READ
R PORT
2739 drw 20
WRITE
D
0
19

Related parts for IDT7006S