IDT7005L Integrated Device Technology, Inc., IDT7005L Datasheet - Page 19

no-image

IDT7005L

Manufacturer Part Number
IDT7005L
Description
High-speed 8k X 8 Dual-port Static RAM
Manufacturer
Integrated Device Technology, Inc.
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
IDT7005L100F
Manufacturer:
IDT
Quantity:
200
Part Number:
IDT7005L100FB
Manufacturer:
IDT
Quantity:
200
Part Number:
IDT7005L100G
Manufacturer:
IDT
Quantity:
200
Part Number:
IDT7005L100GB
Manufacturer:
IDT
Quantity:
200
Part Number:
IDT7005L100J
Manufacturer:
IDT
Quantity:
2 986
IDT7005S/L
HIGH-SPEED 8K x 8 DUAL-PORT STATIC RAM
resource is secure.
technique, if semaphores are misused or misinterpreted, a
software error can easily happen.
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 IDT7005’s Dual-Port
RAM. Say the 8K x 8 RAM was to be divided into two 4K 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
successfully completed (a zero was read back rather than a
one), the left processor would assume control of the lower 4K.
Meanwhile 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 4K 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
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 4K of
Once the left side was finished with its task, it would write
As with any powerful programming
SEMAPHORE
WRITE
L PORT
REQUEST FLIP FLOP
D
0
READ
SEMAPHORE
D
Q
Figure 4. IDT7005 Semaphore Logic
6.06
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
processors to swap 4K 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
MILITARY AND COMMERCIAL TEMPERATURE RANGES
Q
D
SEMAPHORE
READ
R PORT
2738 drw 20
WRITE
D
0
19

Related parts for IDT7005L