CSC/ECE 506 Fall 2007/wiki3 8 a1: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(29 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Background ==  
== Topic Background ==  
The protocols discussed here were created to allow cache coherence to be maintained on a system that has no global bus system that allows snooping to take place, and, has distributed memory that is physically separated.  These systems usually consist of PCM (Processor-Control-Memory) nodes connected by a network; the systems also have network assists to allow communication to take place.
 
For a system to be coherent it must:
#Provide a state machine for the protocol
#Manage the coherence protocol
#*Determine when the coherence protocol should be used
#*Find information on the current cache block in other caches
#*Find out where other copies of the current cache block are located
#*Communicate with the other copies
 
The protocols discussed here are managed by the scalable system by using a directory-based approach.  Information on all cache blocks is kept in a directory that is associated with each block of memory.  When a cache miss arises the directory information is checked and all other caches containing a copy of the desired block are contacted.  The information contained in the directories consists of a dirty bit, and some state information that will allow action to be taken when there is a cache miss and the directory information needs to be referenced.
<br>


== SSCI (Simple Scalable Coherence Interface) protocol ==
== SSCI (Simple Scalable Coherence Interface) protocol ==
The IEEE SCI protocol is a very large and in-depth protocol that is used in real world scalable machines when coherence is a necessity.  Due to its size and complexity it is much easier to gain a basic understanding of the SCI protocol by studying a similar, smaller protocol.  The SSCI protocol, like its name implies, is a simpler version of the SCI protocol.  Below is a list of characteristics that define the SSCI protocol.  Note that it is readily apparent from the characteristics below that the SSCI protocol is very similar to the SCI protocol, more information on this can be viewed in section 4 of this page.
SSCI characteristics:
*Full-bit vector protocol
*MESI protocol states used in the cache
*Memory directory states used:
**U - Unowned
**S - Shared
**EM - Exclusive/Modified
*Presence bits are replaced by pointers
More information on, and examples involving, the SSCI protocol can be viewed  the CSC/ECE 506 lecture 12 notes [http://courses.ncsu.edu/csc506/common/lectures/notes/lec12.pdf here].
<br>
== IEEE SCI (Scalable Coherence Interface) protocol ==
<u> SCI has 2 main configurations: </u>
'''Ring configuration''' consists of nodes that are doubly linked in a
ring and all nodes have equal priority.  The nodes administer the
system as well as do the actual processing.
'''Switch Configuration''' consists nodes don't connect directly they go through
switches that direct packets directly from the source to desination node
(possibly traveling through other switches but not through other nodes).
This is more complicated, but necessary when systems get larger.
The two configurations can also be combined
so there would be rings connected with switches,
this would be best for large performance setups, as shown in the picture below.
<BR>
"http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/image001.jpg"
<u> Packets in SCI consist of 3 main sections: </u>
Header - contains the ID code of the target node, then the control flow
and command, then the third is the id code of the sender (kind of a return
address), followed by the sequence number
Address & Data - contains between 16 and 256 bytes.
Error check word - when transmitted a CRC code is attached to the packet
for error checking and transmission verification.


== IEEE SCI (Scalable Coherence Interface) protocol ==
A transaction requires a transaction handshake, the sender sends a
request to the receiver, the receiver sends an echo of the
request then a response to the sender, then the sender sends an echo of the
response to the receiver.


== SSCI and IEE SCI Protocol Similarities ==
To ensure cache coherence only 1 node connects to memory and this allows
each node to have its own cache while not generating inconsistency which
would obviously be a problem.


== IEE SCI Protocol Additional States ==
== SSCI and IEE SCI Protocol Similarities ==
*The overall protocol operation of SSCI is exactly like the overall protocol operation of SCI.
*SSCI and SCI both use doubly linked lists among the nodes.


== Links ==
== Links ==
Line 15: Line 76:
IEEE SCI on ieexplore -
IEEE SCI on ieexplore -
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&arnumber=113656&isnumber=3365
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&arnumber=113656&isnumber=3365
<br>
4BA2 Technology Survery on SCI (good overview) -
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html
<br>
CSC/ECE 506 Lecture Notes - http://www.csc.ncsu.edu/faculty/efg/506/f07/material/
<BR>
What is SCI (An Introduction to The SCI Protocol) -
"http://www.scizzl.com/WhatIsSCI.html"


== References ==
== References ==
CSC/ECE 506 Lecture Notes, Fall 2007

Latest revision as of 16:35, 24 October 2007

Topic Background

The protocols discussed here were created to allow cache coherence to be maintained on a system that has no global bus system that allows snooping to take place, and, has distributed memory that is physically separated. These systems usually consist of PCM (Processor-Control-Memory) nodes connected by a network; the systems also have network assists to allow communication to take place.

For a system to be coherent it must:

  1. Provide a state machine for the protocol
  2. Manage the coherence protocol
    • Determine when the coherence protocol should be used
    • Find information on the current cache block in other caches
    • Find out where other copies of the current cache block are located
    • Communicate with the other copies

The protocols discussed here are managed by the scalable system by using a directory-based approach. Information on all cache blocks is kept in a directory that is associated with each block of memory. When a cache miss arises the directory information is checked and all other caches containing a copy of the desired block are contacted. The information contained in the directories consists of a dirty bit, and some state information that will allow action to be taken when there is a cache miss and the directory information needs to be referenced.

SSCI (Simple Scalable Coherence Interface) protocol

The IEEE SCI protocol is a very large and in-depth protocol that is used in real world scalable machines when coherence is a necessity. Due to its size and complexity it is much easier to gain a basic understanding of the SCI protocol by studying a similar, smaller protocol. The SSCI protocol, like its name implies, is a simpler version of the SCI protocol. Below is a list of characteristics that define the SSCI protocol. Note that it is readily apparent from the characteristics below that the SSCI protocol is very similar to the SCI protocol, more information on this can be viewed in section 4 of this page.

SSCI characteristics:

  • Full-bit vector protocol
  • MESI protocol states used in the cache
  • Memory directory states used:
    • U - Unowned
    • S - Shared
    • EM - Exclusive/Modified
  • Presence bits are replaced by pointers

More information on, and examples involving, the SSCI protocol can be viewed the CSC/ECE 506 lecture 12 notes here.

IEEE SCI (Scalable Coherence Interface) protocol

SCI has 2 main configurations:

Ring configuration consists of nodes that are doubly linked in a ring and all nodes have equal priority. The nodes administer the system as well as do the actual processing.

Switch Configuration consists nodes don't connect directly they go through switches that direct packets directly from the source to desination node (possibly traveling through other switches but not through other nodes). This is more complicated, but necessary when systems get larger.

The two configurations can also be combined so there would be rings connected with switches, this would be best for large performance setups, as shown in the picture below.
"http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/image001.jpg"

Packets in SCI consist of 3 main sections:

Header - contains the ID code of the target node, then the control flow and command, then the third is the id code of the sender (kind of a return address), followed by the sequence number

Address & Data - contains between 16 and 256 bytes.

Error check word - when transmitted a CRC code is attached to the packet for error checking and transmission verification.

A transaction requires a transaction handshake, the sender sends a request to the receiver, the receiver sends an echo of the request then a response to the sender, then the sender sends an echo of the response to the receiver.

To ensure cache coherence only 1 node connects to memory and this allows each node to have its own cache while not generating inconsistency which would obviously be a problem.

SSCI and IEE SCI Protocol Similarities

  • The overall protocol operation of SSCI is exactly like the overall protocol operation of SCI.
  • SSCI and SCI both use doubly linked lists among the nodes.

Links

IEEE SCI Standard Abstract and Content Summary - http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html
IEEE SCI on ieexplore - http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&arnumber=113656&isnumber=3365
4BA2 Technology Survery on SCI (good overview) - http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html
CSC/ECE 506 Lecture Notes - http://www.csc.ncsu.edu/faculty/efg/506/f07/material/
What is SCI (An Introduction to The SCI Protocol) - "http://www.scizzl.com/WhatIsSCI.html"

References

CSC/ECE 506 Lecture Notes, Fall 2007