<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Refuller</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Refuller"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Refuller"/>
	<updated>2026-05-22T19:37:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=6041</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=6041"/>
		<updated>2007-10-19T23:56:41Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* SSCI and IEE SCI Protocol Similarities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
SSCI characteristics:&lt;br /&gt;
*Full-bit vector protocol&lt;br /&gt;
*MESI protocol states used in the cache&lt;br /&gt;
*Memory directory states used:&lt;br /&gt;
**U - Unowned&lt;br /&gt;
**S - Shared&lt;br /&gt;
**EM - Exclusive/Modified&lt;br /&gt;
*Presence bits are replaced by pointers&lt;br /&gt;
&lt;br /&gt;
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].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
&amp;lt;u&amp;gt; SCI has 2 main configurations: &amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ring configuration''' consists of nodes that are doubly linked in a&lt;br /&gt;
ring and all nodes have equal priority.  The nodes administer the&lt;br /&gt;
system as well as do the actual processing.&lt;br /&gt;
&lt;br /&gt;
'''Switch Configuration''' consists nodes don't connect directly they go through&lt;br /&gt;
switches that direct packets directly from the source to desination node&lt;br /&gt;
(possibly traveling through other switches but not through other nodes).&lt;br /&gt;
This is more complicated, but necessary when systems get larger.&lt;br /&gt;
&lt;br /&gt;
The two configurations can also be combined&lt;br /&gt;
so there would be rings connected with switches, &lt;br /&gt;
this would be best for large performance setups.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt; Packets in SCI consist of 3 main sections: &amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Header - contains the ID code of the target node, then the control flow&lt;br /&gt;
and command, then the third is the id code of the sender (kind of a return&lt;br /&gt;
address), followed by the sequence number&lt;br /&gt;
&lt;br /&gt;
Address &amp;amp; Data - contains between 16 and 256 bytes.&lt;br /&gt;
&lt;br /&gt;
Error check word - when transmitted a CRC code is attached to the packet&lt;br /&gt;
for error checking and transmission verification.&lt;br /&gt;
&lt;br /&gt;
A transaction requires a transaction handshake, the sender sends a &lt;br /&gt;
request to the receiver, the receiver sends an echo of the&lt;br /&gt;
request then a response to the sender, then the sender sends an echo of the&lt;br /&gt;
response to the receiver.&lt;br /&gt;
&lt;br /&gt;
To ensure cache coherence only 1 node connects to memory and this allows&lt;br /&gt;
each node to have its own cache while not generating inconsistency which&lt;br /&gt;
would obviously be a problem.&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities ==&lt;br /&gt;
*The overall protocol operation of SSCI is exactly like the overall protocol operation of SCI.&lt;br /&gt;
*SSCI and SCI both use doubly linked lists among the nodes.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CSC/ECE 506 Lecture Notes - http://www.csc.ncsu.edu/faculty/efg/506/f07/material/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=6039</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=6039"/>
		<updated>2007-10-19T23:53:57Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
SSCI characteristics:&lt;br /&gt;
*Full-bit vector protocol&lt;br /&gt;
*MESI protocol states used in the cache&lt;br /&gt;
*Memory directory states used:&lt;br /&gt;
**U - Unowned&lt;br /&gt;
**S - Shared&lt;br /&gt;
**EM - Exclusive/Modified&lt;br /&gt;
*Presence bits are replaced by pointers&lt;br /&gt;
&lt;br /&gt;
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].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
&amp;lt;u&amp;gt; SCI has 2 main configurations: &amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ring configuration''' consists of nodes that are doubly linked in a&lt;br /&gt;
ring and all nodes have equal priority.  The nodes administer the&lt;br /&gt;
system as well as do the actual processing.&lt;br /&gt;
&lt;br /&gt;
'''Switch Configuration''' consists nodes don't connect directly they go through&lt;br /&gt;
switches that direct packets directly from the source to desination node&lt;br /&gt;
(possibly traveling through other switches but not through other nodes).&lt;br /&gt;
This is more complicated, but necessary when systems get larger.&lt;br /&gt;
&lt;br /&gt;
The two configurations can also be combined&lt;br /&gt;
so there would be rings connected with switches, &lt;br /&gt;
this would be best for large performance setups.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt; Packets in SCI consist of 3 main sections: &amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Header - contains the ID code of the target node, then the control flow&lt;br /&gt;
and command, then the third is the id code of the sender (kind of a return&lt;br /&gt;
address), followed by the sequence number&lt;br /&gt;
&lt;br /&gt;
Address &amp;amp; Data - contains between 16 and 256 bytes.&lt;br /&gt;
&lt;br /&gt;
Error check word - when transmitted a CRC code is attached to the packet&lt;br /&gt;
for error checking and transmission verification.&lt;br /&gt;
&lt;br /&gt;
A transaction requires a transaction handshake, the sender sends a &lt;br /&gt;
request to the receiver, the receiver sends an echo of the&lt;br /&gt;
request then a response to the sender, then the sender sends an echo of the&lt;br /&gt;
response to the receiver.&lt;br /&gt;
&lt;br /&gt;
To ensure cache coherence only 1 node connects to memory and this allows&lt;br /&gt;
each node to have its own cache while not generating inconsistency which&lt;br /&gt;
would obviously be a problem.&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CSC/ECE 506 Lecture Notes - http://www.csc.ncsu.edu/faculty/efg/506/f07/material/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5892</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5892"/>
		<updated>2007-10-18T04:11:20Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
SSCI characteristics:&lt;br /&gt;
*Full-bit vector protocol&lt;br /&gt;
*MESI protocol states used in the cache&lt;br /&gt;
*Memory directory states used:&lt;br /&gt;
**U - Unowned&lt;br /&gt;
**S - Shared&lt;br /&gt;
**EM - Exclusive/Modified&lt;br /&gt;
*Presence bits are replaced by pointers&lt;br /&gt;
&lt;br /&gt;
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].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CSC/ECE 506 Lecture Notes - http://www.csc.ncsu.edu/faculty/efg/506/f07/material/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5891</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5891"/>
		<updated>2007-10-18T04:10:15Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
SSCI characteristics:&lt;br /&gt;
*Full-bit vector protocol&lt;br /&gt;
*MESI protocol states used in the cache&lt;br /&gt;
*Memory directory states used:&lt;br /&gt;
**U - Unowned&lt;br /&gt;
**S - Shared&lt;br /&gt;
**EM - Exclusive/Modified&lt;br /&gt;
*Presence bits are replaced by pointers&lt;br /&gt;
&lt;br /&gt;
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].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5890</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5890"/>
		<updated>2007-10-18T04:05:07Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* SSCI (Simple Scalable Coherence Interface) protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SSCI characteristics:&lt;br /&gt;
*Full-bit vector protocol&lt;br /&gt;
*MESI protocol states used in the cache&lt;br /&gt;
*Memory directory states used:&lt;br /&gt;
**U - Unowned&lt;br /&gt;
**S - Shared&lt;br /&gt;
**EM - Exclusive/Modified&lt;br /&gt;
*Presence bits are replaced by pointers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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].&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5889</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5889"/>
		<updated>2007-10-18T04:04:44Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Topic Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SSCI characteristics:&lt;br /&gt;
*Full-bit vector protocol&lt;br /&gt;
*MESI protocol states used in the cache&lt;br /&gt;
*Memory directory states used:&lt;br /&gt;
**U - Unowned&lt;br /&gt;
**S - Shared&lt;br /&gt;
**EM - Exclusive/Modified&lt;br /&gt;
*Presence bits are replaced by pointers&lt;br /&gt;
&lt;br /&gt;
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].&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5888</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5888"/>
		<updated>2007-10-18T04:04:05Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* SSCI (Simple Scalable Coherence Interface) protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SSCI characteristics:&lt;br /&gt;
*Full-bit vector protocol&lt;br /&gt;
*MESI protocol states used in the cache&lt;br /&gt;
*Memory directory states used:&lt;br /&gt;
**U - Unowned&lt;br /&gt;
**S - Shared&lt;br /&gt;
**EM - Exclusive/Modified&lt;br /&gt;
*Presence bits are replaced by pointers&lt;br /&gt;
&lt;br /&gt;
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].&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5887</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5887"/>
		<updated>2007-10-18T04:03:05Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
SSCI characteristics:&lt;br /&gt;
*Full-bit vector protocol&lt;br /&gt;
*MESI protocol states used in the cache&lt;br /&gt;
*Memory directory states used:&lt;br /&gt;
**U - Unowned&lt;br /&gt;
**S - Shared&lt;br /&gt;
**EM - Exclusive/Modified&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
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].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5886</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5886"/>
		<updated>2007-10-18T03:48:30Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* SSCI (Simple Scalable Coherence Interface) protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==D&lt;br /&gt;
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 says, is a simpler version of SCI&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5748</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5748"/>
		<updated>2007-10-17T01:34:02Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* IEEE SCI (Scalable Coherence Interface) protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5747</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5747"/>
		<updated>2007-10-17T01:30:56Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5746</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5746"/>
		<updated>2007-10-17T01:30:33Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5745</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5745"/>
		<updated>2007-10-17T01:30:15Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5744</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5744"/>
		<updated>2007-10-17T01:29:57Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
4BA2 Technology Survery on SCI (good overview) -&lt;br /&gt;
http://ntrg.cs.tcd.ie/undergrad/4ba2.05/group12/index.html&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5743</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5743"/>
		<updated>2007-10-17T01:15:18Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* IEEE SCI (Scalable Coherence Interface) protocol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol ==&lt;br /&gt;
=== Background ===&lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5742</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5742"/>
		<updated>2007-10-17T01:12:15Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
CSC/ECE 506 Lecture Notes, Fall 2007&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5741</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5741"/>
		<updated>2007-10-17T01:11:00Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Topic Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine for the protocol&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5740</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5740"/>
		<updated>2007-10-17T01:10:10Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Topic Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5739</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5739"/>
		<updated>2007-10-17T01:09:54Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Topic Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5738</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5738"/>
		<updated>2007-10-17T01:09:05Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Topic Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
:For a system to be coherent it must:&lt;br /&gt;
:#Provide a state machine&lt;br /&gt;
:#Manage the coherence protocol&lt;br /&gt;
:#*Determine when the coherence protocol should be used&lt;br /&gt;
:#*Find information on the current cache block in other caches&lt;br /&gt;
:#*Find out where other copies of the current cache block are located&lt;br /&gt;
:#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5735</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5735"/>
		<updated>2007-10-17T01:07:33Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Topic Background == &lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5734</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5734"/>
		<updated>2007-10-17T01:07:02Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5733</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5733"/>
		<updated>2007-10-17T01:02:48Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5732</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5732"/>
		<updated>2007-10-17T01:00:34Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
The protocols discussed here are managed by the scalable system by using a directory-based approach.  This approach stores information on all cache blocks in a directory that associated with each block of memory.&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5731</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5731"/>
		<updated>2007-10-17T00:54:45Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Background == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*Find information on the current cache block in other caches&lt;br /&gt;
#*Find out where other copies of the current cache block are located&lt;br /&gt;
#*Communicate with the other copies&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5730</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5730"/>
		<updated>2007-10-17T00:49:42Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Background == &lt;br /&gt;
The protocols discussed here were created to allow 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.&lt;br /&gt;
&lt;br /&gt;
For a system to be coherent it must:&lt;br /&gt;
#Provide a state machine&lt;br /&gt;
#Manage the coherence protocol&lt;br /&gt;
#*Determine when the coherence protocol should be used&lt;br /&gt;
#*&lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Cohttp://pg.ece.ncsu.edu/mediawiki/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;amp;action=edit&lt;br /&gt;
Editing CSC/ECE 506 Fall 2007/wiki3 8 a1 - PG_MediaWikiherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5729</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5729"/>
		<updated>2007-10-17T00:29:18Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Background == &lt;br /&gt;
The protocols discussed here were created to allow 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.  &lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5723</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5723"/>
		<updated>2007-10-16T22:52:28Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Background == &lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5722</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5722"/>
		<updated>2007-10-16T22:52:09Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Background == &lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEEE SCI Standard Abstract and Content Summary -&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
IEEE SCI on ieexplore -&lt;br /&gt;
http://ieeexplore.ieee.org/iel5/285/3365/00113656.pdf?tp=&amp;amp;arnumber=113656&amp;amp;isnumber=3365&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5721</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5721"/>
		<updated>2007-10-16T22:48:27Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Background == &lt;br /&gt;
&lt;br /&gt;
== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
IEE SCI Standard Abstract and Content Summary:&lt;br /&gt;
http://standards.ieee.org/reading/ieee/std_public/description/busarch/1596-1992_desc.html&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5720</id>
		<title>CSC/ECE 506 Fall 2007/wiki3 8 a1</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki3_8_a1&amp;diff=5720"/>
		<updated>2007-10-16T22:38:57Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SSCI (Simple Scalable Coherence Interface) protocol ==&lt;br /&gt;
&lt;br /&gt;
== IEEE SCI (Scalable Coherence Interface) protocol == &lt;br /&gt;
&lt;br /&gt;
== SSCI and IEE SCI Protocol Similarities == &lt;br /&gt;
&lt;br /&gt;
== IEE SCI Protocol Additional States ==&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3373</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3373"/>
		<updated>2007-09-11T00:24:14Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one system.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
[http://www.sas.com/grid SAS grid computing.]&lt;br /&gt;
&lt;br /&gt;
[http://www.openmp.org/drupal/ OpenMP - shared-memory parallel programming.]&lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of data parallel processing.&lt;br /&gt;
&lt;br /&gt;
These [http://www.vcpc.univie.ac.at/activities/tutorials/HPF/lectures/html/jhm.2.html lectures] speak on the topic of data parallelism in the F90 and HPF (fortran).&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  This is due to the fact that the hardware &lt;br /&gt;
primitives have basically become the same for all parallel architectures.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.    &lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;br /&gt;
&lt;br /&gt;
A very good 1999 [http://www.cs.berkeley.edu/~culler/cs258-s99/slides/lec02/index.htm presentation] on the convergence of parallel architectures.&lt;br /&gt;
&lt;br /&gt;
== Layers of Abstraction ==&lt;br /&gt;
There are many layers of abstraction between the application and the hardware.  The user program is written using a certain programming model.  This programming model specifies the way in which the information is communicated among different pieces of the program.  The compiler and/or libraries provide the layer of abstraction between the programming model and the available hardware primitives.  Figure 1.13 on pg. 27 of &amp;quot;Parallel Computer Architecture: A Hardware/Software Approach&amp;quot; displays these layers of abstraction well.  However, it seems that with the convergence of programming models and the use of data parallelism in message passing and shared address space programming the layer of abstraction containing the programming models should be revised if not edited out completely.&lt;br /&gt;
&lt;br /&gt;
== Links to Trends in Parallel Computing ==&lt;br /&gt;
[http://www-unix.mcs.anl.gov/dbpp/text/node7.html Parallelism and Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.intel.com/cd/ids/developer/asmo-na/eng/segments/hpc/95223.htm?page=3 Intel - Trends in Distributed Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://css.psu.edu/news/nlsp98/progtrends.html Programming Trends in High Performance Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.cs.cmu.edu/~scandal/research-groups.html Supercomputing and Parallel Computing Research Groups]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
Culler, David and Singh, Jaswinder.  &amp;quot;Parallel Computer Architecture: A Hardware/Software Approach&amp;quot;.  ISBN 1-55860-343-3&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3372</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3372"/>
		<updated>2007-09-11T00:22:44Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Bibliography */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one system.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
[http://www.sas.com/grid SAS grid computing.]&lt;br /&gt;
&lt;br /&gt;
[http://www.openmp.org/drupal/ OpenMP - shared-memory parallel programming.]&lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of data parallel processing.&lt;br /&gt;
&lt;br /&gt;
These [http://www.vcpc.univie.ac.at/activities/tutorials/HPF/lectures/html/jhm.2.html lectures] speak on the topic of data parallelism in the F90 and HPF (fortran).&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  This is due to the fact that the hardware &lt;br /&gt;
primitives have basically become the same for all parallel architectures.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.    &lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;br /&gt;
&lt;br /&gt;
A 1999 [http://www.cs.berkeley.edu/~culler/cs258-s99/slides/lec02/index.htm presentation] on the convergence of parallel architectures.&lt;br /&gt;
&lt;br /&gt;
== Layers of Abstraction ==&lt;br /&gt;
There are many layers of abstraction between the application and the hardware.  The user program is written using a certain programming model.  This programming model specifies the way in which the information is communicated among different pieces of the program.  The compiler and/or libraries provide the layer of abstraction between the programming model and the available hardware primitives.  Figure 1.13 on pg. 27 of &amp;quot;Parallel Computer Architecture: A Hardware/Software Approach&amp;quot; displays these layers of abstraction well.  However, it seems that with the convergence of programming models and the use of data parallelism in message passing and shared address space programming the layer of abstraction containing the programming models should be revised if not edited out completely.&lt;br /&gt;
&lt;br /&gt;
== Links to Trends in Parallel Computing ==&lt;br /&gt;
[http://www-unix.mcs.anl.gov/dbpp/text/node7.html Parallelism and Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.intel.com/cd/ids/developer/asmo-na/eng/segments/hpc/95223.htm?page=3 Intel - Trends in Distributed Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://css.psu.edu/news/nlsp98/progtrends.html Programming Trends in High Performance Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.cs.cmu.edu/~scandal/research-groups.html Supercomputing and Parallel Computing Research Groups]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
Culler, David and Singh, Jaswinder.  &amp;quot;Parallel Computer Architecture: A Hardware/Software Approach&amp;quot;.  ISBN 1-55860-343-3&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3367</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3367"/>
		<updated>2007-09-11T00:09:49Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one system.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
[http://www.sas.com/grid SAS grid computing.]&lt;br /&gt;
&lt;br /&gt;
[http://www.openmp.org/drupal/ OpenMP - shared-memory parallel programming.]&lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of data parallel processing.&lt;br /&gt;
&lt;br /&gt;
These [http://www.vcpc.univie.ac.at/activities/tutorials/HPF/lectures/html/jhm.2.html lectures] speak on the topic of data parallelism in the F90 and HPF (fortran).&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  This is due to the fact that the hardware &lt;br /&gt;
primitives have basically become the same for all parallel architectures.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.    &lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;br /&gt;
&lt;br /&gt;
A 1999 [http://www.cs.berkeley.edu/~culler/cs258-s99/slides/lec02/index.htm presentation] on the convergence of parallel architectures.&lt;br /&gt;
&lt;br /&gt;
== Layers of Abstraction ==&lt;br /&gt;
There are many layers of abstraction between the application and the hardware.  The user program is written using a certain programming model.  This programming model specifies the way in which the information is communicated among different pieces of the program.  The compiler and/or libraries provide the layer of abstraction between the programming model and the available hardware primitives.  Figure 1.13 on pg. 27 of &amp;quot;Parallel Computer Architecture: A Hardware/Software Approach&amp;quot; displays these layers of abstraction well.  However, it seems that with the convergence of programming models and the use of data parallelism in message passing and shared address space programming the layer of abstraction containing the programming models should be revised if not edited out completely.&lt;br /&gt;
&lt;br /&gt;
== Links to Trends in Parallel Computing ==&lt;br /&gt;
[http://www-unix.mcs.anl.gov/dbpp/text/node7.html Parallelism and Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.intel.com/cd/ids/developer/asmo-na/eng/segments/hpc/95223.htm?page=3 Intel - Trends in Distributed Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://css.psu.edu/news/nlsp98/progtrends.html Programming Trends in High Performance Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.cs.cmu.edu/~scandal/research-groups.html Supercomputing and Parallel Computing Research Groups]&lt;br /&gt;
&lt;br /&gt;
== Bibliography ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3359</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3359"/>
		<updated>2007-09-10T23:33:42Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
=== Layers of Abstraction ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
[http://www.sas.com/grid SAS grid computing.]&lt;br /&gt;
&lt;br /&gt;
[http://www.openmp.org/drupal/ OpenMP - shared-memory parallel programming.]&lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.  Data parallelism&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of data parallel processing.&lt;br /&gt;
&lt;br /&gt;
These [http://www.vcpc.univie.ac.at/activities/tutorials/HPF/lectures/html/jhm.2.html lectures] speak on the topic of data parallelism in the F90 and HPF (fortran).&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  This is due to the fact that the hardware &lt;br /&gt;
primitives have basically become the same for all parallel architectures.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.    &lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;br /&gt;
&lt;br /&gt;
A 1999 [http://www.cs.berkeley.edu/~culler/cs258-s99/slides/lec02/index.htm presentation] on the convergence of parallel architectures.&lt;br /&gt;
&lt;br /&gt;
== Links to Trends in Parallel Computing ==&lt;br /&gt;
[http://www-unix.mcs.anl.gov/dbpp/text/node7.html Parallelism and Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.intel.com/cd/ids/developer/asmo-na/eng/segments/hpc/95223.htm?page=3 Intel - Trends in Distributed Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://css.psu.edu/news/nlsp98/progtrends.html Programming Trends in High Performance Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.cs.cmu.edu/~scandal/research-groups.html Supercomputing and Parallel Computing Research Groups]&lt;br /&gt;
&lt;br /&gt;
== Bibliography ==&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3356</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3356"/>
		<updated>2007-09-10T23:27:24Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
[http://www.sas.com/grid SAS grid computing.]&lt;br /&gt;
&lt;br /&gt;
[http://www.openmp.org/drupal/ OpenMP - shared-memory parallel programming.]&lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.  Data parallelism&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of data parallel processing.&lt;br /&gt;
&lt;br /&gt;
These [http://www.vcpc.univie.ac.at/activities/tutorials/HPF/lectures/html/jhm.2.html lectures] speak on the topic of data parallelism in the F90 and HPF (fortran).&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  This is due to the fact that the hardware &lt;br /&gt;
primitives have basically become the same for all parallel architectures.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.    &lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;br /&gt;
&lt;br /&gt;
A 1999 [http://www.cs.berkeley.edu/~culler/cs258-s99/slides/lec02/index.htm presentation] on the convergence of parallel architectures.&lt;br /&gt;
&lt;br /&gt;
== Links to Trends in Parallel Computing ==&lt;br /&gt;
[http://www-unix.mcs.anl.gov/dbpp/text/node7.html Parallelism and Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.intel.com/cd/ids/developer/asmo-na/eng/segments/hpc/95223.htm?page=3 Intel - Trends in Distributed Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://css.psu.edu/news/nlsp98/progtrends.html Programming Trends in High Performance Computing]&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3352</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3352"/>
		<updated>2007-09-10T23:21:52Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Convergence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
[http://www.sas.com/grid SAS grid computing.]&lt;br /&gt;
&lt;br /&gt;
[http://www.openmp.org/drupal/ OpenMP - shared-memory parallel programming.]&lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of data parallel processing.&lt;br /&gt;
&lt;br /&gt;
These [http://www.vcpc.univie.ac.at/activities/tutorials/HPF/lectures/html/jhm.2.html lectures] speak on the topic of data parallelism in the F90 and HPF (fortran).&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  This is due to the fact that the hardware &lt;br /&gt;
primitives have basically become the same for all parallel architectures.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.    &lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;br /&gt;
&lt;br /&gt;
A 1999 [http://www.cs.berkeley.edu/~culler/cs258-s99/slides/lec02/index.htm presentation] on the convergence of parallel architectures.&lt;br /&gt;
&lt;br /&gt;
=== Layers of Abstraction ===&lt;br /&gt;
&lt;br /&gt;
== Links to Trends in Parallel Computing ==&lt;br /&gt;
[http://www-unix.mcs.anl.gov/dbpp/text/node7.html Parallelism and Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.intel.com/cd/ids/developer/asmo-na/eng/segments/hpc/95223.htm?page=3 Intel - Trends in Distributed Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://css.psu.edu/news/nlsp98/progtrends.html Programming Trends in High Performance Computing]&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3339</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3339"/>
		<updated>2007-09-10T23:06:52Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
[http://www.sas.com/grid SAS grid computing.]&lt;br /&gt;
&lt;br /&gt;
[http://www.openmp.org/drupal/ OpenMP - shared-memory parallel programming.]&lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of data parallel processing.&lt;br /&gt;
&lt;br /&gt;
These [http://www.vcpc.univie.ac.at/activities/tutorials/HPF/lectures/html/jhm.2.html lectures] speak on the topic of data parallelism in the F90 and HPF (fortran).&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  This is due to the fact that the hardware &lt;br /&gt;
primitives have basically become the same for all parallel architectures.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.    &lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;br /&gt;
&lt;br /&gt;
=== Layers of Abstraction ===&lt;br /&gt;
&lt;br /&gt;
== Links to Trends in Parallel Computing ==&lt;br /&gt;
[http://www-unix.mcs.anl.gov/dbpp/text/node7.html Parallelism and Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.intel.com/cd/ids/developer/asmo-na/eng/segments/hpc/95223.htm?page=3 Intel - Trends in Distributed Computing]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://css.psu.edu/news/nlsp98/progtrends.html Programming Trends in High Performance Computing]&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3337</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3337"/>
		<updated>2007-09-10T23:06:07Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
[http://www.sas.com/grid SAS grid computing.]&lt;br /&gt;
&lt;br /&gt;
[http://www.openmp.org/drupal/ OpenMP - shared-memory parallel programming.]&lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of data parallel processing.&lt;br /&gt;
&lt;br /&gt;
These [http://www.vcpc.univie.ac.at/activities/tutorials/HPF/lectures/html/jhm.2.html lectures] speak on the topic of data parallelism in the F90 and HPF (fortran).&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  This is due to the fact that the hardware &lt;br /&gt;
primitives have basically become the same for all parallel architectures.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.    &lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;br /&gt;
&lt;br /&gt;
=== Layers of Abstraction ===&lt;br /&gt;
&lt;br /&gt;
== Links to Trends in Parallel Computing ==&lt;br /&gt;
[http://www-unix.mcs.anl.gov/dbpp/text/node7.html Parallelism and Computing]&lt;br /&gt;
[http://www.intel.com/cd/ids/developer/asmo-na/eng/segments/hpc/95223.htm?page=3 Intel - Trends in Distributed Computing]&lt;br /&gt;
[http://css.psu.edu/news/nlsp98/progtrends.html Programming Trends in High Performance Computing]&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3333</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3333"/>
		<updated>2007-09-10T22:47:07Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
[http://www.sas.com/grid SAS grid computing.]&lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of using data parallel processing.&lt;br /&gt;
&lt;br /&gt;
These [http://www.vcpc.univie.ac.at/activities/tutorials/HPF/lectures/html/jhm.2.html lectures] speak on the topic of data parallelism in the F90 and HPF (fortran).&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.&lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;br /&gt;
&lt;br /&gt;
=== Layers of Abstraction ===&lt;br /&gt;
&lt;br /&gt;
== Links to Trends in Parallel Computing ==&lt;br /&gt;
[http://www-unix.mcs.anl.gov/dbpp/text/node7.html]&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3332</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3332"/>
		<updated>2007-09-10T22:44:32Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
[http://www.sas.com/grid SAS grid computing.]&lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of using data parallel processing.&lt;br /&gt;
&lt;br /&gt;
These [http://www.vcpc.univie.ac.at/activities/tutorials/HPF/lectures/html/jhm.2.html lectures] speak on the topic of data parallelism in the F90 and HPF (fortran).&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.&lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;br /&gt;
&lt;br /&gt;
=== Layers of Abstraction ===&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3328</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3328"/>
		<updated>2007-09-10T22:39:05Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
[http://www.sas.com/grid SAS grid computing.]&lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of using data parallel processing.&lt;br /&gt;
&lt;br /&gt;
These [http://www.vcpc.univie.ac.at/activities/tutorials/HPF/lectures/html/jhm.2.html lectures] speak on the topic of data parallelism in the F90 and HPF (fortran).&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.&lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3326</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3326"/>
		<updated>2007-09-10T22:37:00Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of using data parallel processing.&lt;br /&gt;
&lt;br /&gt;
These [http://www.vcpc.univie.ac.at/activities/tutorials/HPF/lectures/html/jhm.2.html lectures] speak on the topic of data parallelism in the F90 and HPF (fortran).&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.&lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3003</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=3003"/>
		<updated>2007-09-06T02:33:38Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
Intel's [http://www.intel.com/design/archives/Processors/mmx/ MMX] processors are a good example of using data parallel processing.&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.&lt;br /&gt;
&lt;br /&gt;
A 2003 comparison of parallel computing problems solved with message passing and shared address space models can be viewed [http://portal.acm.org/citation.cfm?id=763446 here].&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=2994</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=2994"/>
		<updated>2007-09-06T02:27:38Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.&lt;br /&gt;
&lt;br /&gt;
To see the trends of parallel computers becoming widespread in use this [http://www.islandnet.com/~kpolsson/micropro/ site] provides a chronology of microprocessors.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=2960</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=2960"/>
		<updated>2007-09-06T01:55:13Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.&lt;br /&gt;
&lt;br /&gt;
This [http://www.cs.princeton.edu/picasso/seminarsS04/MPI_Day1.pdf paper], which was written in 2005, discusses the need to integrate message passing into shared address space models.&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=2942</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=2942"/>
		<updated>2007-09-06T01:45:04Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Message Passing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.org MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=2940</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=2940"/>
		<updated>2007-09-06T01:44:37Z</updated>

		<summary type="html">&lt;p&gt;Refuller: /* Message Passing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
A widespread interface for message passing machines is the message passing interface, or MPI.  More information on the MPI can be found at the [http://www.mpi-forum.com MPI forum].&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=2916</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=2916"/>
		<updated>2007-09-06T01:35:58Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a communication architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the communication architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accommodate the communication operations.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all with memory operations such as loads and stores.  &lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.  The sending process sends the data along with information that directs the message to the correct receiving process.  &lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;br /&gt;
&lt;br /&gt;
== Convergence ==&lt;br /&gt;
As parallel computer architecture has matured it has become apparent that the parallel programming models have all been created to accomplish the same sorts of problems.  For this reason the division between the programming models has become unclear since hardware for recent parallel computers is able to support a variety of programming models.  A good example of this convergence is the way in which the message-passing machines of today are very similar to nonuniform memory access machines (NUMA), a type of machine that uses the shared address space model.&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=2738</id>
		<title>CSC/ECE 506 Fall 2007/wiki1 6 r8e</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_506_Fall_2007/wiki1_6_r8e&amp;diff=2738"/>
		<updated>2007-09-05T22:39:59Z</updated>

		<summary type="html">&lt;p&gt;Refuller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Communication Architecture Background ==&lt;br /&gt;
Parallel computers must have two types of architectures.  One of these is this computer architecture, or that of the individual processors that are interconnected.  Each of these processors has an instruction set architecture and microarchitecture, or a system of computer organization at a very low level that make up the computer architecture.  The second type of architecture that is needed for parallel computing is that of a commuincation architecture, or a way in which the individual processors can communicate and work together to do useful things, this includes synchronization among the processors.  Also, the commuincation architecture is closely linked with the hardware of the parallel computer because the hardware must be able to accomodate the communication operations.  &lt;br /&gt;
&lt;br /&gt;
== Parallel Programming Models ==&lt;br /&gt;
The communication architecture dictates communication operations that the user software is allowed to perform.  Parallel programming models layout the framework for the way in which the communication operations take place.  In the beginning of parallel computing a single programming model was used for one sytem.  The hardware was constructed to support only the communication operations that the specific programming model used.  However, As parallel computing became more widespread there has been a convergence of programming models.  Many models have become integrated and have been used together.  Many parallel programming models exist, the most common of which are described below.  &lt;br /&gt;
&lt;br /&gt;
=== Shared Address Space ===&lt;br /&gt;
Shared address space programming can be understood best when related to a message or bulletin board.  Anyone can post a message on this board, and anyone can read what others have written.  The key to the shared address space model is the fact that all of the vital information is posted in shared locations that can be accessed by all.&lt;br /&gt;
&lt;br /&gt;
=== Message Passing ===&lt;br /&gt;
Message passing machines convey information in a way similar to that of a phone call or a letter.  There are very specific events that trigger the movement of information from a unique sender to a unique receiver.&lt;br /&gt;
&lt;br /&gt;
=== Data Parallel ===&lt;br /&gt;
Data parallel programming is by far the most regulated of the three parallel programming models.  In this type of programming work is carried out on different elements of a data set by different operators.  Once all operations are finished information is exchanged among all, basically after the work is done a global data organization is performed.&lt;/div&gt;</summary>
		<author><name>Refuller</name></author>
	</entry>
</feed>