13.07.2015 Views

The Nostrum Protocol Stack and Suggested Services Provided by ...

The Nostrum Protocol Stack and Suggested Services Provided by ...

The Nostrum Protocol Stack and Suggested Services Provided by ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

December 6, 2002 1:51 pm<strong>Nostrum</strong> - II.II.THE NOSTRUM ARCHITECTURE AND BACKBONE<strong>The</strong> purpose of this section is to describe <strong>Nostrum</strong> architecture, an in-house developedplatform for SoC design using the Network on chip for strategy for communication.<strong>The</strong> <strong>Nostrum</strong> concept is to provide a platform with versatile communicationcapabilities, which can be reused for a large number of SoC designs.Some Terminology - Processes & ResourcesToday’s integrated digital systems can be seen to consist of computation <strong>and</strong> communication.Communication from our viewpoint is just the job of getting the right informationfrom one application to another, where an application is anything thatperforms computation. In order to prove the <strong>Nostrum</strong> architecture/backbone conceptcomputation is, in this document defined as, anything that performs/implementsa function. A functional unit like this is called a Process (P). One or moreProcesses defines a Resource (R). Examples of different Resources are Processor Elements,Memory Elements, I/O Elements etc.Any communication between Processes with a Resource is defined as internalResource communication; whereas communication between Resources, i.e. Processesresiding in different Resources, is considered to be inter-Resource communication.R 1P P 1 1 P 2P 3R 4P 5P 9R 2FIGURE 2.1Process/Resource MappingOne alternative view of the Resources is to see them as 100k-1M gates playgroundsfor the end-user for free utilisation. <strong>The</strong> purpose of the <strong>Nostrum</strong> backbone is to providea reliable communication platform for these Resources.<strong>The</strong> Idea Behind the <strong>Nostrum</strong> ConceptIn order to alleviate the designer from the cumbersome task of designing the communicationbetween different processes the <strong>Nostrum</strong> backbone offers a general butfixed packet switched communication platform, which can be reused for a largenumber of SoC designs. This communication platform is organised as a network overwhich the Processes communicate.DEFINITION 2.1DEFINITION 2.2<strong>Nostrum</strong> architecture An in-house developed platform for SoC design usingthe Network on chip for strategy for on chip communication<strong>Nostrum</strong> backbone A layered communication platform used within the <strong>Nostrum</strong>architecture for on chip communication<strong>The</strong> network can both be used for message passing between Resources as well as fordata distribution. However, from here on, both, true messages <strong>and</strong> any data distributionwill be referred to as Messages. <strong>The</strong> message passing between the Resources ispacket based, i.e. the Message is segmented <strong>and</strong> put into packets that are sent over5


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 2.2more Processes are mapped onto a Resource.SNIRFIGURE 2.3Switch/Network Interface / Resource relationsAll Resources are equipped with a Network Interface (NI), connected to the Switch, toh<strong>and</strong>le the communication between the Resource core <strong>and</strong> the network. <strong>The</strong> NI h<strong>and</strong>lesall the communication protocols needed to make the network as transparent aspossible to the Resource.However the <strong>Nostrum</strong> is not inherently dependent of the 2D-mesh topology, otherpossibilities might include folded torus, fat-trees etc. [11][12]. We have opted for a2D-mesh topology for four main reasons.• First, as analysed <strong>by</strong> Culler [11], (1) low dimension topologies are favoured whenwiring <strong>and</strong> interconnects carry a significant cost, (2) there is a high b<strong>and</strong>widthbetween Switches, <strong>and</strong> (3) the delay caused <strong>by</strong> Switches is comparable to theinter-switch delay. This is the case for VLSI implementations on the 2-dimensionalsurface of a chip <strong>and</strong> practically rules out higher dimension topologies.• Second, we assume that all applications that we have in mind, e.g. telecom equipment<strong>and</strong> terminals, multi-media devices, consumer electronics etc., exhibit ahigh degree of locality in the communication pattern. This is in stark contrast tothe objective of traditional parallel computer designed to minimise latency forarbitrary communication patterns.• Third, we assume a heterogeneous set of Resources with nodes on the peripheryoften specialised for I/O tasks. Hence, we rejected torus topologies in favour of amesh, open at the chip borders to simplify layout <strong>and</strong> wiring.• Fourth, the main difference between a “general” network, with a more or less r<strong>and</strong>omstructure, <strong>and</strong> a regular 2D-mesh network is the addressing. In a generalnetwork, the lack of ordered structure raises the need for routing tables. <strong>The</strong>tables are needed because the actual location of the destination, or the route to it,might not fully be known on beforeh<strong>and</strong>. Due to the topology of the 2D-mesh, theaddressing of the Resources will become very easy. It is always known on beforeh<strong>and</strong>where the Resource is physically/logically located. This property makes thedesign of the Switches simple <strong>and</strong> the need for routing tables is reduced or eliminated.2.2 An introduction to the <strong>Nostrum</strong> Backbone<strong>The</strong> purpose of the <strong>Nostrum</strong> backbone is to provide a reliable communication infrastructurefor SoCs. <strong>The</strong> backbone is a part of the <strong>Nostrum</strong> concept <strong>and</strong> provides aversatile communication platform where the designer can explore <strong>and</strong> choose from aset of implementations with different levels of reliability, complexity of service etc.<strong>The</strong> trade-off cost is analysed <strong>and</strong> presented in terms of power, timing, reliability etc.7


December 6, 2002 1:51 pm<strong>Nostrum</strong> - III.<strong>The</strong> backbone has been developed with a set of different communication protocols inmind (OCP, MPI, UDP, IP etc.)[23] [13]. Consequently, the backbone can be used forboth single-message passing between Resources (datagram based communication) aswell as for stream oriented data distribution (virtual circuit). <strong>The</strong> message passingbetween the Resources is packet based, i.e. the message is segmented <strong>and</strong> put intopackets that are sent over the network. Segmentation is needed because the possiblemismatch between message size <strong>and</strong> the packet payload size, i.e. the message mighthave to be sent as several packets due to large size.In order to make the Resources benefit from the backbone they are all equipped witha Network Interface (NI) to offer a uniform communication interface between theResource core <strong>and</strong> the network. <strong>The</strong> NI h<strong>and</strong>les all the communication protocolsneeded to make the network as transparent as possible to the Resource. On top of<strong>Nostrum</strong> <strong>Protocol</strong><strong>Stack</strong>ApplicationRNINetworkInterfaceResourcesNetworkApplicationRNINetworkInterfaceCustom <strong>Protocol</strong><strong>Stack</strong>FIGURE 2.4<strong>The</strong> Application/RNI/NI Interfacesthe NI resides the Resource Network Interface (RNI) (Figure 2.4). <strong>The</strong> RNI is the customhardware/software used to connect the <strong>Nostrum</strong> backbone protocol stack withthe communication protocols used <strong>by</strong> the Resource. <strong>The</strong> RNI h<strong>and</strong>les all the applicationspecific communication issues. Some examples• In the case of the application being a memory the RNI could act as an arbiter orDMA.• If the application being a processor e.g. an ARM core [14] the RNI could act as abridge between e.g. the AMBA bus <strong>and</strong> the NI.• Also the RNI can act as a bridge between already proposed st<strong>and</strong>ards for communication<strong>and</strong> the <strong>Nostrum</strong>, e.g. the VSI Alliance [1]<strong>The</strong> boundary between the NI <strong>and</strong> RNI is, however, not regulated within the <strong>Nostrum</strong>architecture. <strong>The</strong> <strong>Nostrum</strong> protocol stack can be implemented with an ‘arbitrary’depth, i.e. if the application only requests a very basic functionality the stack can bemore or less shallow.III.RELATED AREAS AND DEFINITIONS3.1 <strong>The</strong> Layered Communication ApproachIn order to make different Processes communicate, a st<strong>and</strong>ard needs to be definedfor the format of communication. Communication in our case means that regardlesswhat data format is used <strong>and</strong> regardless the physical <strong>and</strong> logical location of the8


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 3.2transmitter <strong>and</strong> receiver of the communicating Processes, they will be able to underst<strong>and</strong>each other.DEFINITION 3.1 Messages <strong>The</strong> information/data exchanged <strong>by</strong> Processes are called Messages<strong>The</strong>se intentions put a lot of complex requirements on the mechanism to implementcommunication. <strong>The</strong>se requirements are quite diverse; the process communicationmechanism needs to be able to deal with different data formats, different priorities,the interaction with the underlying network etc.3.2 TerminologyIn order to implement this diverse functionality a vertical set of layers has beendefined, with each layer providing the layer above <strong>and</strong> below with a set of services.<strong>The</strong> driving force behind the layered approach is that the interface <strong>and</strong> the set ofservices a layer provides to the layers above <strong>and</strong> below is static whereas the implementationof these services is dynamic.DEFINITION 3.2DEFINITION 3.3Layer A Layer is an abstract notation used for grouping related functionalitiesin a “vertical” manner where the Layer’s position corresponds to the abstractionlevel usedService A service is defined as an agreed functionality which the particularlayer has to provideThis layered approach to communication to great extent enhances the possibilities ofperforming simulations <strong>and</strong> implementations of the different layers in a multitude ofdesign/model/specification languages; this due to flexibility of implementation. Italso alleviates changes in the protocol stack; i.e. it makes it very easy to change theimplementation of one or several layers, without affecting the others.Layer N + 1 Layer N + 1Layer NSAPSAPLayer NSAPSAPEntityEntityPeer <strong>Protocol</strong>EntityEntityLayer N - 1SAPSAPLayer N - 1SAPSAPFIGURE 3.1Overview Over the Layered Approach with SAPs<strong>The</strong>se services a layer offer could further be divided into Functions implemented <strong>by</strong>that particular Layer.DEFINITION 3.4Function A Function is a concrete call for a services a layer provides<strong>The</strong> Functions within a Layer are collected into groups called Entities. <strong>The</strong>se Entities,9


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 3.3within the same layer communicate with their peers using one or more <strong>Protocol</strong>s, i.e.rules for interpretation of information communicated within that Layer. <strong>The</strong>se unitsof information/of agreed data format used to implement the <strong>Protocol</strong> are called <strong>Protocol</strong>Data Units (PDUs).DEFINITION 3.5DEFINITION 3.6Entities Entities are defined as a group of Functions that a layer could performin order to implement its servicesA <strong>Protocol</strong> Data Unit - PDU A <strong>Protocol</strong> Data Unit (PDU) is the agreed dataformat within a Layer, i.e. used <strong>by</strong> peersDEFINITION 3.7 <strong>Protocol</strong> A <strong>Protocol</strong> is the interpretation of the <strong>Protocol</strong> Data Unit within aLayerIn order to provide these services interfaces to the upper <strong>and</strong> lower Layers has to bedefined. <strong>The</strong>se interfaces are known as Service Access Points (SAPs). As long as aLayer agrres with its SAP <strong>and</strong> implements its services, “any” implementation may beused.DEFINITION 3.8Service Access Point - SAP A Service Access Point (SAP) is the communicationinterface between adjacent LayersWhen describing the different layers the term payload is used for the data transmitted<strong>by</strong> the current layer as part of the service provided to the upper layers <strong>and</strong> theheader is the additional information added/needed <strong>by</strong> this particular layer in order toimplement its services. <strong>The</strong> payload might contain headers used <strong>by</strong> subsequent layers.A PDU consists of header <strong>and</strong> payload unique to that particular layer.3.3 Switching TechniquesIn a communication system there are several possibilities when it comes to transmittingmessages between parties. In order to classify these different possibilities anomenclature based on the work of Irvine et al. is used [15]. Mainly, there exists twopossible methods for arranging point to point communication through a network:connection-oriented <strong>and</strong> connection-less. In the connection-oriented case, a path isset up between the transmitter <strong>and</strong> the receiver; whereas in the connection-lesscase, the information is encapsulated into units called datagrams, or packets whichcan make their way through the network without an explicit connection is beingestablished. Traditional telecommunication networks have been connection-oriented,while computer networks have been connection-less.One further partition can be made when describing the communication in networks:circuit switching <strong>and</strong> packet switching. Circuit switching is equivalent to having adedicated path set up between transmitter <strong>and</strong> receiver <strong>and</strong> the information is sentas a stream. Circuit switching is always connection-oriented. Since the <strong>Nostrum</strong>backbone is packet switched, circuit switching will not further be described.Packet switching can be either connection-oriented or connection-less. <strong>The</strong> connection-lesspacket switching is employed when a small amount of information is to besent; setting up a connection to transfer this information would be inefficient due tohigh initial cost. <strong>The</strong> connection-less packet switching has the advantage that thenetwork is only used when information is to be sent. <strong>The</strong> connection-less packetswitching can further be divided into message switching <strong>and</strong> cell switching.10


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 3.3Message switching is also known as store-<strong>and</strong>-forward; due to that the whole messageis treated as one packet of arbitrary length which is transferred between theSwitches, buffered until the full message is received, <strong>and</strong> then transmitted to thenext Switch.In cell switching, all packets have the same size. This common format reduces theneed for buffering in the Switches since a packet can be forwarded immediately.However, since all packets are equipped with a header, the message might be sent inseveral packets <strong>and</strong> the utilisation of the network will be less.CommunicationPacket switchingCircuit switchingconnection-lessConnection-orientedCell-switchingMessage switchingDatagram switchingVirtual CircuitFIGURE 3.2Deflective routing Wormhole routingCommunication NomenclatureTDMA<strong>The</strong>re are two main categories of cell switching techniques: datagram switching <strong>and</strong>virtual circuit.In a datagram switching-based system, all packets are considered as separate units<strong>and</strong> will be routed through the network as such. This means that different packets ofthe same message may take different routes through the system <strong>and</strong> possibly arrivedisordered. To order packets/keep the order of packets, a sequence number isappended to the packet’s header. <strong>The</strong> main benefit of this approach is the ability offast adaptation to changes in the network, i.e. congestion, broken links etc. In the<strong>Nostrum</strong> backbone a deflective routing (hot-potato) [16] approach is chosen to implementthe datagram switching. Deflective routing uses no explicit buffers in theSwitches but relies on that packets can be sent immediately in a “sufficiently” gooddirection in the network, hence the nickname hot-potato routing. <strong>The</strong> reason forchoosing this approach is the little need for hardware.In the virtual circuit cell switching approach a path, between the transmitter <strong>and</strong>receiver, is set up prior to transmission. All the packets transmitted will follow thispredestined path during transmission. Consequently packets can not arrive out oforder <strong>and</strong> no explicit sequence number is therefore needed. After transmission, thepath is possibly torn down, this since only a limited number of virtual paths are possible.In all other aspects, this approach is very similar to the connection-orientedpoint-to-point communication. In the <strong>Nostrum</strong> backbone two different variants ofthe general virtual circuit is used. Wormhole routing <strong>and</strong> Time-Division MultipleAccess (TDMA).In Wormhole routing [17] one additional requirement has been put on transmissioncompared to the general virtual circuit approach. <strong>The</strong> requirement is that the packetsare sent out continuously. When the first packet in a message arrives to a Switch,11


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 3.4a routing decision is taken <strong>and</strong> the packet is routed in that direction. All the immediatelysubsequent packets belonging to this message will be routed in the same direction.<strong>The</strong> last packet, belonging to the message, tears the connection down. <strong>The</strong>observed behaviour of this will be that of a worm of packets, trailing its way fromtransmitter to receiver. Since the routing decision is only taken dynamically for thefirst packet but not for the rest this approach resides both under the datagram <strong>and</strong>the virtual circuit category.In the case of the virtual circuit TDMA, a path between the transmitter <strong>and</strong> thereceiver is set up prior to transmission. Once the path is set up, the transmitter/receiver pair is guaranteed/subscribed to a fraction of the full b<strong>and</strong>width availableover that particular path. <strong>The</strong> fraction is implemented, as the TDMA suggests, as atime-slot when the transmitter/receiver pair has unique access to that particularpath. A time-slot in the <strong>Nostrum</strong> backbone is one network transmission clock cycle<strong>and</strong> can vary from one to four. A network transmission clock cycle is the time it takesto transmit a packet from one Switch to another neighbouring Switch. <strong>The</strong> TDMAchannel can be set up either statically or dynamically i.e. either, during start-up orin run-time.3.4 <strong>The</strong> OSI ModelAs a starting point for the Layers employed, the OSI model is used as a basis. Thismodel is well described in James Irvine et al.’s “Data Communications <strong>and</strong> Networks[21][15] <strong>and</strong> responsibilities of the different layers are described briefly below.Application (Layer 7): <strong>The</strong> application layer provides the user interface to the communicationsystem. Examples include electronic mail, distributed databases <strong>and</strong>network operating systems.Presentation: <strong>The</strong> presentation layer provides a common format to the applicationlayer. It allows processes to communicate even if they use different representations.For example, different web browsers provide different user interfaces- different applications- but all underst<strong>and</strong> the HTML page format, the JPEG image format etc.<strong>The</strong>se file formats are examples of presentation layer protocols, while the browsersthemselves reside in the application layer. <strong>Services</strong> provided <strong>by</strong> the presentationlayer therefore include things like file transfer, virtual terminal protocols, compression,code transformation <strong>and</strong> encryption.Session: <strong>The</strong> session layer breaks down the services sent from the presentation layerinto basic data flows which can be sent over the system. It manages interactionsbetween pairs of communication application processes. ‘Sessions’ can be short orlong, involving one or many message interactions. <strong>Services</strong> provided to the presentationlayer include session establishment/termination, authentication/accounting,synchronisation, data transfer <strong>and</strong> exception reporting.Transport: <strong>The</strong> transport layer provides the initial establishment of communicationchannels, the transfer of data <strong>and</strong> the final release of the channel. For data transfer,it interfaces with the network layer to ensure an error-free virtual point-to-point connection,where the communications arrive in the correct order. In the case whencomputers have multi-tasking capabilities, the transport layer ensures that the communicationgoes to the correct process <strong>and</strong> performs any multiplexing or de-multiplexingrequired.12


December 6, 2002 1:51 pm<strong>Nostrum</strong> - IV.Network: <strong>The</strong> network layer interconnects data link communication paths into a globalnetwork that connects all open systems, i.e the routing of the communicationfrom the source node to the destination node. It provides the rules for routing packetsthrough the network, <strong>and</strong> for flow control where necessary, to ensure that not tomany packets enter the system.Data Link: This layer ensures reliable communication over the physical layer. <strong>The</strong>protocol determines the structure of data, i.e. frame or packet size, <strong>and</strong> deals withaspects such as flow control, error detection, <strong>and</strong> error recovery.Physical: This layer is concerned with the physical aspects of the communicationlink - mechanical <strong>and</strong> electrical - <strong>and</strong> provides the means to transit bits of dataacross a continuous communication path. <strong>The</strong> protocol for this layer sets detailssuch as cable sizes, loss <strong>and</strong> frequency characteristics, connector types, pin arrangements,voltage levels, <strong>and</strong> transmission coding.IV.THE NOSTRUM PROTOCOL STACKIntroduction<strong>The</strong> overall purpose with the <strong>Nostrum</strong> <strong>Protocol</strong> <strong>Stack</strong> used within the <strong>Nostrum</strong> backboneis to aid in the design of communication on chip.<strong>The</strong> communication backbone is divided in several layers with different responsibilities.<strong>The</strong>se responsibilities are defined from a conceptual perspective where similarresponsibilities are grouped into the same layer. <strong>The</strong>se layers have a one-to-one correspondenceto the <strong>Nostrum</strong> <strong>Protocol</strong> <strong>Stack</strong>.Communication is based on the assumption that you are either designing an applicationor designing functionality in the protocol stack. In both cases you will requirea set of services from the communication backbone, e.g transmit packet or suchlike.User of ServiceSAPPacket Transmissionfunctionf_transmitPacket(dpid, data)f_packetReceived(dpid, data)<strong>Nostrum</strong>FIGURE 4.1Overview of User of Service versus the <strong>Nostrum</strong> backbone<strong>The</strong> broker of these services are called a Service Access Point (SAP). A service is implemented<strong>by</strong> a set of Functions. Between the User of Service <strong>and</strong> the Service AccessPoint there exist a contract. <strong>The</strong> contract is mutual, i.e the User of Service is notonly employing the service of getting something done, we also implement the functionsrequested from the SAP in the opposite direction!EXAMPLE 4.1 In Figure 4.1 Overview of User of Service versus the <strong>Nostrum</strong> backbone. <strong>The</strong>service is the one of Packet Transmission <strong>and</strong> the functions offered <strong>by</strong> the SAP is the13


December 6, 2002 1:51 pm<strong>Nostrum</strong> - IV.f_transmitPacket. <strong>The</strong> function that the User of Service needs to be able to respond to is thef_packetReceived. Both these functions have data dpid (destination process id) as arguments/outputs.function f_transmitMessage(dpid, data, MSN) f_MessageReceived(dpid, data, MSN)SAPMessage TransmissionUser/Provider of ServiceSAPPacket Transmissionfunction f_transmitPacket(dpid, data) f_packetReceived(dpid, data)<strong>Nostrum</strong> ApplicationFIGURE 4.2Overview Over User of Service <strong>and</strong> the Application versus the <strong>Nostrum</strong> backboneIn the case of designing functionality in the protocol stack the User of Service is alsoa provider of services to the layer above, as depicted in Figure 4.1 Overview of User ofService versus the <strong>Nostrum</strong> backbone. From the figure we can see that there are actuallyfour kinds of services that exist. Offered <strong>and</strong> required services both exist in theup-stream <strong>and</strong> the down-stream data flow in the <strong>Nostrum</strong> protocol stack.<strong>The</strong> services offered <strong>and</strong> requested from the SAP below should all be treated as servicesoffered <strong>and</strong> requested from the <strong>Nostrum</strong> backbone. This regardless where in theprotocol stack the User of Service reside.<strong>The</strong> “opposite” of the services offered <strong>and</strong> requested <strong>by</strong> the <strong>Nostrum</strong> backbone arethe services offered <strong>and</strong> requested <strong>by</strong> the Application above. In the same manner aseverything below was <strong>Nostrum</strong> now everything above is Application <strong>and</strong> as beforethis regardless where in the protocol stack, you as the User of Service reside.DEFINITION 4.1 Service Offered to Application<strong>The</strong> service that the User of Service isrequired to provide in order to fully utilise the SAP contract to the Application aboveDEFINITION 4.2 Service Required from Application<strong>The</strong> service the Application above mustoffer to the User of Service belowDEFINITION 4.3 Service Offered <strong>by</strong> <strong>Nostrum</strong><strong>The</strong> service the SAP/<strong>Nostrum</strong> offers to theUser of Service, i.e. the service the SAP below offers to the User of Service above inthe <strong>Nostrum</strong> protocol stackDEFINITION 4.4 Service Required <strong>by</strong> <strong>Nostrum</strong><strong>The</strong> service the User of Service above mustoffer to the <strong>Nostrum</strong> in order to make the SAP fulfil its promises14


December 6, 2002 1:51 pm<strong>Nostrum</strong> - IV.In order to get these definitions right one has to think from the User/Provider ofService’s perspective.By defining the services in this hierarchical manner a fully functioning communicationplatform can be built in a structured <strong>and</strong> parallel way.ClocksWith each of the SAP every layer provide these might be the a clock associated. <strong>The</strong>purpose of the clock is to enable the synchronous clock driven model[20]. Usuallythe clocks are used to synchronise the function calls <strong>and</strong> set up deadlines for whendata/function calls gets stale. Also the clocks gives the possibility of describing executiontime for different function implementations. An example of this behaviour isthe implementation of the Data Link Layer Clock (LLC). <strong>The</strong> LLC decides the speed atData Link Layer ClockUser of ServicePacket TransmissionfunctionCall() functionCall()<strong>Nostrum</strong>Data Link Layer ClockFunction calls/ Sent frames 1 2 3FIGURE 4.3<strong>The</strong> Data Link Layer Clockwhich frames are accepted from the SAP. On every raising edge of the LLC one frameis moved from the output of a Switch to the corresponding input of the Switch in theother end of the data channel.Comments<strong>The</strong> following discussion might be omitted in the final document<strong>The</strong> speed at which packets are sent out is decided <strong>by</strong> the Network Layer Clock. <strong>The</strong>ratio between the Network Layer Clock <strong>and</strong> the Data Link Layer Clock decides the15


December 6, 2002 1:51 pm<strong>Nostrum</strong> - IV.duration of packets in terms of Data Link Layer Clock ticks.Data Link Layer ClockPacket Duration = 1Network Layer ClockPacket Duration = 2Sent PacketsNetwork Layer ClockSent Packets1 2 3 4 5 61 1 2 2 3 3FIGURE 4.4= HeaderIn the most basic set-up of the network, the duration of a packet is one Data LinkLayer Clock tick. This means that the Network Layer Clock is running at the samespeed as the Data Link Layer Clock, i.e. the Network / Data Link Layer Clock ratio isone. This ratio is from here on referred to as the packet Duration. Ifthepacket Durationis, e.g., two, this naturally means that one packet is allowed to occupy two NetworkLayer Clock clock-cycles. <strong>The</strong> reception <strong>and</strong> emission of packets are at thisstage h<strong>and</strong>led in a Store & Forward manner [CULLER - PARALLEL COMPUTER...] p.756 ff. As suggested <strong>by</strong> [CULLER - PARALLEL COMPUTER...] this could be h<strong>and</strong>ledin several different ways, further investigation is therefore needed.Even though a packet, normally, only occupies one Data Link Layer Clock cycle, itsometimes is advisable to extend the packet Duration to more than one Data LinkLayer Clock cycle.<strong>The</strong> reason for letting one packet occupy more than one Network Clock cycle is theimproved Header/Payload ratio. In the most basic setup with a packet Duration ofone, the Header/Payload ratio is only approximately 50%. This under the assumptionmade in.<strong>The</strong> layersA st<strong>and</strong>ard protocol stack for a Network-on-Chip platform allows the separate, independentdevelopment <strong>and</strong> validation of Resources, communication network <strong>and</strong>applications as long as they comply with the defined protocols. This clear separationfacilitates the systematic reuse of Resources, communication infrastructure <strong>and</strong>application features.As a starting point for the layers employed in the <strong>Nostrum</strong> backbone protocol stack,the OSI model [15] is used as a basis as proposed <strong>by</strong> others [5][6][7][9]. With thiswell-known layered model in perspective the <strong>Nostrum</strong> backbone is described interms of the proposed terminology. However, these layers only exist as a conceptualaid in the design process, once the design is set the layers might be collapsed at alogic level in order to enhance the possibility of hardware implementation optimisations.Within the concept of the <strong>Nostrum</strong> backbone resides the three “compulsory” layers;the Network, the Data Link, <strong>and</strong> the Physical Layer.16


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 4.1Together, one of the most basic service these three layer provide is the service ofdelivering packets. Please note that the purpose of this brief description of the layersbelow is to define the abstraction level where the respective layers are active. <strong>The</strong>suggested services works as in inspiration how it could work. A more detailed discussingis found in the next chapter Section V - <strong>Suggested</strong> <strong>Services</strong> <strong>Provided</strong> <strong>by</strong> the<strong>Nostrum</strong> Backbone, we also present the suggested services in more detail.4.1 Physical Layer<strong>The</strong> lowest layer is the Physical Layer (PL). <strong>The</strong> purpose of the PL, from a simulationpoint of view, in the <strong>Nostrum</strong> protocol stack is to give the possibility of error introduction.<strong>The</strong> spatial <strong>and</strong> temporal patterns of these errors are extracted from modelsof the physical implementation of the hardware. <strong>The</strong> errors are introduced at bitlevel.If no errors are introduced the layer is transparent.<strong>Suggested</strong> Service<strong>The</strong> layer’s responsibility is to move a word from the output of aSwitch to the corresponding input of the next with the possibility of introducingerrors.<strong>Protocol</strong> Data Unit<strong>The</strong> Physical Layer’s PDU is the word. <strong>The</strong> word is an array of bits,in the current implementation the word size is 128 bits.CommentSince the Physical Layer is the bottom layer it has no <strong>Nostrum</strong> backbone torely on <strong>and</strong> therefore no service requests from the backbone needs to be h<strong>and</strong>led.<strong>The</strong> only services are the ones offered to the Application, i.e. the Data Link Layer4.2 Data Link Layer<strong>The</strong> Data Link Layer (LL) provides the reliable transfer of information across thephysical link.<strong>Suggested</strong> Service<strong>The</strong> LL is responsible for the sending of frames with the necessarysynchronisation, error control, <strong>and</strong> flow control. In the st<strong>and</strong>ard definition of theservices the layer is only concerned with the synchronisation of the transmission offrames.<strong>Protocol</strong> Data UnitExcept for the propagated frame information about detected/correctederrors can be set up-stream. <strong>The</strong> PDU of the extended services in the DataLink Layer is the Error Correction Codes (ECCs) appended on the frame.CommentIn order to fit the SAP of the PL the frames of the LL might get segmented orconcatenated. <strong>The</strong> reason for making such option available is to give the opportunityof adopting to changes in the physical implementation without actually affect theupper layers. It also gives the possibility to elaborate different bit-widths contraphysical clock speeds, e.g. is it beneficial to use a double-sized bus <strong>and</strong> half thespeed?4.3 Network Layer<strong>The</strong> Network Layer’s (NL) responsibility is to provide the transport of packets fromthe transmitting Resource through the network to the receiving Resource. <strong>The</strong> NL hasthe responsibility of how a packet should be routed.<strong>The</strong> NL also has the responsibility for management <strong>and</strong> mapping of the physical/logicaladdresses to the Process identifiers associated with the different Processes in the17


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 4.4different Resources. This management involves the mapping/re-mapping of the Process-Resourcepairs, either at system set-up or during run-time.<strong>Suggested</strong> <strong>Services</strong>Within the st<strong>and</strong>ard definition of the services, two different services,h<strong>and</strong>ling data transmission, can be requested. <strong>The</strong> first service is the datagramservice. Any packet sent to the NL will get routed dynamically through the network.<strong>The</strong> second service is the virtual circuit switching service. On request, a virtual circuitbetween the transmitter <strong>and</strong> the receiver is set up.<strong>Protocol</strong> Data Unit PDU.SPid MSN DPid messageTransportf_transmitPacket(data, DPid, SPid, MSN)SPidMSNDPidmessageMidpayloadMidMidMidPSN 3PSN 2PSN 1payload 3payload 2payload 1TL-PDUDPiddataNetworkf_transmitPacket(data, DPid)DAddr = f(DPid)Priority DAddr payloadpacketProtectionSchemedataData Linkf_transmitFrame(data, protectionScheme)ECCframeframedataPhysicalf_transmitWord(data, errorModel)wordwordPossible error introductionErrorModelFIGURE 4.5<strong>The</strong> <strong>Nostrum</strong> <strong>Protocol</strong> <strong>Stack</strong> <strong>and</strong> the SAPs for the Datagram Service Implementation4.4 Transport Layer<strong>The</strong> Transport Layer (TL) h<strong>and</strong>les the establishment of communication. In the case ofthe virtual circuit it issues an establishment of a connection <strong>and</strong> h<strong>and</strong>les the transferof data, i.e. it ensures a virtual point-to-point connection, where the messages aresegmented into packets which are sent via the NL. At the destination the packets areassembled, ordered <strong>and</strong> the message is delivered <strong>and</strong> the connection is torn down. Itmay also provide the service of traffic control, i.e. the load of the network is moni-18


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 4.5tored <strong>and</strong> overload of the network is hence avoided.<strong>Suggested</strong> <strong>Services</strong><strong>The</strong>re are two kinds of st<strong>and</strong>ard services that the TL provides, datagramdelivery of messages <strong>and</strong> virtual circuit transmission of data.In the case of the datagram-message delivery service a message gets delivered as fastas possible to the destination Process decided <strong>by</strong> the DPid. In the case of anextended service implementation the additional services of lost packet detection/correction<strong>and</strong> priority message delivery is also available.Virtual circuit transmission differs from the datagram approach <strong>by</strong> that a virtualpath needs to be set up prior to transmission. <strong>The</strong> choice of the virtual circuit isbased on the tolerance to latency due to the cost of connection set up. Once issued aNetwork Layer call for the virtual service set up is done, when the connection isestablished a guaranteed b<strong>and</strong>width exists between the transmitter <strong>and</strong> receiver.Even though not implemented there exists an inherent possibility of multi-cast virtualcircuit since the connection is based on full duplex; i.e. the virtual path is twoway.<strong>Protocol</strong> Data UnitIn the case of a datagram transmission the TL segments the messageinto datagrams (packets). <strong>The</strong> first packet in the message carries the DPid sothat the receiver will be able to determine the source of the message. <strong>The</strong> DPid is alsoforwarded to the SAP of the NL. Every packet gets tagged <strong>by</strong> a unique Message Id(Mid) together with a Packet Sequence Number (PSN) which is necessary for propermessage recovery at the destination. <strong>The</strong> last packet also gets the Last Packet (LP) bitset.<strong>The</strong> protocol for the virtual circuit service is similar to the datagram protocol. <strong>The</strong>very difference lies in that a connection needs to be established. Even not present inFigure 4.5 there exist additional data fields in the SAP dedicated for virtual path setup. <strong>The</strong> request for the establishment of a virtual circuit is performed <strong>by</strong> sending aDestination <strong>and</strong> Source Process id virtual circuit request. Once granted an acknowledgementwill be sent back <strong>and</strong> the TL is now transmitting any message with thededicated Destination <strong>and</strong> Source Process id pair over the connection.4.5 Session Layer<strong>The</strong> purpose of the Session Layer (SL) is the administration of the send- <strong>and</strong> receivebuffersin order to h<strong>and</strong>le the interfaces between the network <strong>and</strong> the application ata higher level. This might also include traffic profiling in order to employ the rightservice from the TL.V. SUGGESTED SERVICES PROVIDED BY THE NOSTRUM BACKBONE<strong>The</strong> purpose of this chapter is to give a concrete proposal of services that could beincluded in the st<strong>and</strong>ard repertoire of the <strong>Nostrum</strong> backbone. However, as statedbefore, these suggestions should be treated as firm but not fixed <strong>and</strong> should undergocareful review <strong>and</strong> changes <strong>and</strong> additions are most likely to be made.<strong>The</strong> presentation of the layers <strong>and</strong> the services is pretty much a reprint of the previouschapter Section IV - <strong>The</strong> <strong>Nostrum</strong> <strong>Protocol</strong> <strong>Stack</strong> with incremental details added.Even though the different services in inherently dependent on the physical layout of19


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 5.1the <strong>Nostrum</strong> architecture the Section 5.1 - <strong>The</strong> NoC Layering - “Physical” Interpretationmight serve as a good reminder of the respective realms where the different servicesreside.Data LinkPhysicalNetworkTransportNetwork InterfaceResourceSSSSRRRRSS S SR R R RS S S SFIGURE 5.1 <strong>The</strong> NoC Layering - “Physical” InterpretationSome Assumptions<strong>The</strong> presentation of the different layers <strong>and</strong> the services is based on the followingassumptions• <strong>The</strong> network is an n × n 2D mesh network with no torus, i.e. no wrap-around• <strong>The</strong> size of the n × n network is assumed to be at most 32 × 32• No Packet in the network will have to travel more than twice the diameter of thenetwork, i.e 2 × 2 × n = 2 × 64• Absolute addressing is used; if relative addressing is to be used, one additionaladdress bit needs to be added in each dimension, i.e. two bits for an n × n network5.1 <strong>The</strong> Physical Layer<strong>The</strong> lowest layer is the Physical Layer (PL); the layer’s responsibility is to move a wordfrom the output of a Switch to the corresponding input of the next. <strong>The</strong> purpose ofthe Physical Layer is to enable error insertion in simulation. If no errors are insertedthe layer is transparent. <strong>The</strong> domain of the Physical Layer is depicted in Figure 5.220


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 5.1<strong>The</strong> Physical Layer DomainResourceTransportNetworkData LinkPhysicalData LinkNetworkPhysicalTransportResourceFIGURE 5.2<strong>The</strong> Physical Layer Domain5.1.1 <strong>The</strong> Service of Word Transmission - St<strong>and</strong>ard<strong>The</strong> layer’s responsibility is to move a word from the output of one Switch to the correspondinginput of the next.f_transmitWord(word [transmission time])Purpose:Parameters:To transmit a word from the output of one Switch to the corresponding input ofthe next.word - <strong>The</strong> word to transmit[transmission time] - <strong>The</strong> transmission time is optionally specifiedTime:<strong>The</strong> SAP accepts a function call any time <strong>and</strong> executes it immediately. <strong>The</strong>time for transmission is optionally specified, i.e. the time before af_wordReceived call is issued in the receiving Switch.Service Required from Application<strong>The</strong> Application is required to accept af_wordReceived function call at any time. Unanswered function calls will result inloss of data.f_wordReceived(data)PurposeService Offered <strong>by</strong> <strong>Nostrum</strong>None. <strong>The</strong> Physical Layer is the lowest layer, i.e. no <strong>Nostrum</strong>below!Service Required <strong>by</strong> <strong>Nostrum</strong>None. <strong>The</strong> Physical Layer is the lowest layer, i.e. no <strong>Nostrum</strong>below!<strong>Protocol</strong> Data Unit<strong>The</strong> Physical Layer’s PDU is the word. <strong>The</strong> word is an array of bits,21


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 5.1in the current implementation the word size is 128 bits.Physicalf_transmitWord(data)Service Offeredf_wordReceived(data)Service RequiredFIGURE 5.3<strong>The</strong> Behaviour of the Physical Layer5.1.2 <strong>The</strong> Service of Word Transmission - Erroneous<strong>The</strong> layer’s responsibility is to move a word from the output of a Switch to the correspondinginput of the next with the possibility of introducing errors. <strong>The</strong> SAP acceptsa function call any time <strong>and</strong> executes it immediately. <strong>The</strong> time for transmission isoptionally specified.Also the possibility of error introduction is supported. A suggested error model fieldmight consist of errorModel = {none | model1(param1, param2,...) |model2(param1, param2,... ). <strong>The</strong> model <strong>and</strong> parameters could be any <strong>and</strong> is currentlyunder investigation[22].f_transmitWord(data, errorModel, [transmission time])Service Required from Application<strong>The</strong> Application is required to accept af_wordReceived function call at any time. Unanswered function call will result in lossof data.Also an additional field, errorIntroduced = {true | false}, for marking whetherthe data was corrupt or not has been introduced.f_wordReceived(data, errorIntroduced)Service Offered <strong>by</strong> <strong>Nostrum</strong>None. <strong>The</strong> Physical Layer is the lowest layer, i.e. no <strong>Nostrum</strong>below!Service Required <strong>by</strong> <strong>Nostrum</strong>None. <strong>The</strong> Physical Layer is the lowest layer, i.e. no <strong>Nostrum</strong>below!<strong>Protocol</strong> Data Unit<strong>The</strong> Physical Layer’s PDU is the word. <strong>The</strong> word is an array of bits,in the current implementation the word size is 128 bits. In addition to the word PDUsome formats for the error creation, possibilities might be needed?.Physicalf_transmitWord(data, errorType)Service Offeredf_wordReceived(data, errorIntroduced)Service RequiredPossible Error IntroductionFIGURE 5.4<strong>The</strong> Behaviour of the Physical Layer22


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 5.25.2 <strong>The</strong> Data Link Layer<strong>The</strong> second lowest layer is the Data Link Layer (LL); the layer’s responsibility is tomove a frame from the output of a Switch to the corresponding input of the next, i.e.the transfer of information across the physical link. <strong>The</strong> possibility of error correction<strong>and</strong> detection is introduced. <strong>The</strong> LL is responsible for the sending of frames withnecessary synchronisation.<strong>The</strong> frames of the Data Link Layer might get segmented or concatenated in order tofit the SAP of the Physical Layer. <strong>The</strong> reason for making such option available is to beable to adopt to changes in the physical implementation without a actually affect theupper layers. It also gives the possibility to elaborate different bit-widths contraphysical clock speeds, e.g is it beneficial to use a double-sized bus as half the speed?<strong>The</strong> domain of the Data Link Layer is depicted in Figure 5.5 <strong>The</strong> Data Link LayerDomainResourceTransportNetworkData LinkPhysicalData LinkNetworkPhysicalTransportResourceFIGURE 5.5<strong>The</strong> Data Link Layer Domain5.2.1 <strong>The</strong> Service of Frame Transmission - St<strong>and</strong>ard<strong>The</strong> layer’s responsibility is to move a frame from the output of a Switch to the correspondinginput of the next. <strong>The</strong> Data Link Layer (LL) provides the transfer of informationacross the physical link. <strong>The</strong> LL is responsible for the sending of frames withnecessary synchronisation. <strong>The</strong> SAP accepts a function call any time <strong>and</strong> executeson next raising Data Link Layer clock. <strong>The</strong> time for transmission is decided <strong>by</strong> implementation<strong>and</strong> measured in LL clock ticks.f_transmitFrame(data)Service Required from Application<strong>The</strong> Application is required to accept af_frameReceived function call at any raising LL clock. Unanswered function calls willresult in loss of data.f_frameReceived(data)Service Offered <strong>by</strong> <strong>Nostrum</strong><strong>The</strong> service needed from the <strong>Nostrum</strong> backbone is the oneof Error Free Word Transmission. <strong>The</strong> function in particular isf_transmitWord(data)Service Required <strong>by</strong> <strong>Nostrum</strong>In order to be able to request the service of Error Free23


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 5.2Word Transmission we must implement the function off_wordReceived(data)<strong>Protocol</strong> Data Unit<strong>The</strong> Data Link Layer’s PDU is the frame. <strong>The</strong> frame is an array ofbits, in the current implementation the frame size is 128 bits.Data LinkPhysicalf_transmitFrame(data)f_frameReceived(data)Service OfferedService RequiredUser/Provider of Servicef_transmitWord(data)f_wordReceived(data)Service OfferedService Required<strong>Nostrum</strong>Data Link Layer ClockFIGURE 5.6<strong>The</strong> Behaviour of the Data Link Layer5.2.2 <strong>The</strong> Service of Frame Transmission - Single Bit Error Detection<strong>The</strong> layer’s responsibility is to move a frame from the output of a Switch to the correspondinginput of the next Switch. <strong>The</strong> Data Link Layer (LL) provides the transfer ofinformation across the physical link. <strong>The</strong> LL is responsible for the sending of frameswith necessary synchronisation.In addition to the st<strong>and</strong>ard service In the Single Bit Error Detection Service any singlebit errors occur in the protected field of the data an error will be signalled.<strong>The</strong> SAP accepts a function call any time <strong>and</strong> executes on next raising Data LinkLayer clock. <strong>The</strong> time for transmission is decided <strong>by</strong> implementation <strong>and</strong> measuredin LL clock ticks.Also the possibility of error detection is introduced. Any single bit error will bedetected in the protectionScheme(start, end) field. <strong>The</strong> start <strong>and</strong> end parametersdenotes the start <strong>and</strong> end position of the protected field. If protected is left out errordetection is omitted. As well as the model <strong>and</strong> parameters for generating errors isunder investigation the scheme for error detection is under investigation as well[22].f_transmitFrame(data [ protectionScheme(start, end) ])Service Required from Application<strong>The</strong> Application is required to accept af_frameReceived function call at any raising LL clock. Unanswered function calls willresult in loss of data. In addition to the st<strong>and</strong>ard Service of Frame Transmission <strong>and</strong>extra date field of errorDetected is added. <strong>The</strong> format of errorDetected = {true |false} (boolean).f_wordReceived(data, errorDetected)Service Offered <strong>by</strong> <strong>Nostrum</strong><strong>The</strong> service needed from the <strong>Nostrum</strong> backbone is the one24


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 5.3of Service of Word Transmission - Erroneous. <strong>The</strong> function in particular isf_transmitWord(data, errorModel [, transmission time])Service Required <strong>by</strong> <strong>Nostrum</strong>In order to be able to request the service of Word Transmission-Erroneous we must implement the function off_wordReceived(data, errorIntroduced))Note that we are not required to deal with the information errorIntroduced this fieldonly serves as a reference for analysis of the error detection implemented.<strong>Protocol</strong> Data Unit<strong>The</strong> Data Link Layer’s PDU is the frame. <strong>The</strong> frame is an array ofbits, in the current implementation the frame size is 128 bits. In addition to these128 bits, additional bits will be needed for the error protection scheme used. <strong>The</strong>exact number is not known but will depend on size of the protected field[22].CommentsThis is a section for additional comments around the topic of error detection.This part might be omitted in the final document.What errors should be detected?• No detection - trivial!• Errors in the full frame, i.e an error will be detected anywhere in the frame. This isthe safest on since it ensures that packets will be sent <strong>and</strong> delivered flawless <strong>by</strong>the network. One drawback that is easy to spot is the computational overheadrequired. Computational overhead means more time, more area, <strong>and</strong> more power.• Detection of errors which potentially might reside in the protection field in theframe. This field may correspond to important information in the header part of apacket at the Network layer. This since a potential error, in the Header, is moredangerous to the network, i.e. a miss-routed data might cause larger damage to acritical application. <strong>The</strong> designer might also consider a lighter Header protectionin order to save time, area, or speed.If errors are detected, what’s the counter-action?• Removal of packets without notifying upper layers• Re-sending of packets. Either <strong>by</strong> buffering packets in the Switches or in the NetworkInterface, i.e. should the errors be detected/repaired <strong>by</strong> the Data Link Layeror the Lower Transport Layer?• ...5.3 <strong>The</strong> Network Layer<strong>The</strong> next layer is the Network Layer. This layer is responsible for the, error free,transport of packets from the transmitting Resource through the network to thereceiving Resource. <strong>The</strong> Network Layer has the responsibility of how a packet shouldbe routed.<strong>The</strong> domain of the Network Layer is depicted in Figure 5.5 <strong>The</strong> Data Link Layer25


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 5.3DomainResourceTransportData LinkPhysicalNetworkData LinkPhysicalNetworkTransportResourceFIGURE 5.7<strong>The</strong> Network Layer Domain5.3.1 <strong>The</strong> Service of Packet Transmission - St<strong>and</strong>ard<strong>The</strong> St<strong>and</strong>ard service provide the transport of packets from the transmittingResource through the network to the receiving Resource. <strong>The</strong> Network Layer has theresponsibility of how a packet should be routed. <strong>The</strong> st<strong>and</strong>ard service provide noerror detection/correction capabilities <strong>and</strong> therefore the st<strong>and</strong>ard service of FrameTransmission can be utilised, i.e. no errors are introduced.<strong>The</strong> time for transmission is decided <strong>by</strong> implementation together with the characteristicsof the network (load, topology etc.) <strong>and</strong> is measured in NL clock ticks. <strong>The</strong> SAPaccepts a function call f_transmitPacket(data, pid) any time <strong>and</strong> executes on nextraising Network Layer clock IF there is network capacity available! If the networkcurrently is congested a counter f_networkCongestion() function call is raised <strong>and</strong>the packet has to be re-transmitted, i.e. a new f_transmitPacket(data, pid) functioncall must be made. <strong>The</strong> function call of f_transmitPacket(data, dpid) have twodata fields; data which is the data that the Application wants to transmit togetherwith a dpid (Destination Process identifier) which identifies the destination of thepacket. Inside the network layer the dpid will be translated into a physical addressthat is used in the routing in the network.f_transmitPacket(data, pid)Service Required from Application<strong>The</strong> Application is required to accept af_packetReceived(data) function call at any raising LL clock. Unanswered functioncalls will result in loss of data.f_packetReceived(data, pid)Also the function of f_packetTransmitted() needs to be implemented. This functionis raised any time any f_transmitPacket call is successful, i.e. the packet could besent. <strong>The</strong> function has no parameters.f_transmitPacket()Service Offered <strong>by</strong> <strong>Nostrum</strong><strong>The</strong> service needed from the <strong>Nostrum</strong> backbone is the oneof Frame Transmission - St<strong>and</strong>ard. <strong>The</strong> function in particular is26


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 5.3f_transmitFrame(data)Service Required <strong>by</strong> <strong>Nostrum</strong>In order to be able to request the service of <strong>The</strong> Serviceof Packet Transmission - St<strong>and</strong>ard we must implement the function off_frameReceived(data)required <strong>by</strong> the Frame Transmission - St<strong>and</strong>ard serviceNetworkf_transmitPacket(data, pid)Service OfferedUser/Provider of Servicef_packetTransmitted()f_packetReceived(data, pid)Service RequiredNetwork LayerClockf_transmitFrame(data)f_frameReceived(data)Data LinkService OfferedService Required<strong>Nostrum</strong>Data LinkLayer ClockFIGURE 5.8<strong>The</strong> Behaviour of the Network Layer<strong>Protocol</strong> Data Unit<strong>The</strong> Data Link Layer’s PDU consists of the packet <strong>and</strong> some contoldata fields. <strong>The</strong> PDU is an array of bits, in the current implementation the PDU sizeis 128 bits. Further the PDU is divided into the following fieldsdata - 98 bits, the payload, i.e. the data that is sent from the source to destination.dpid - 10 bits, the Destination Process id. This tag is used to identify the receivingprocess.logic address - 10 bits. <strong>The</strong> logic address used for the routing, i.e. the addressused to determine where the destination process physically is locatedpriority field - 10 bits. This field is used in order to enhance routing.How these different fields are used is up the designer of the service. One suggestedapproach is to see the packet as a carrier of information over the network. Within thepacket the data fields of data, pid, logic address <strong>and</strong> a Hop Counter (see commentsection) is present. Other information which is used to enhance the performane ofthe network may reside in the priority field.Several different proposal have been made how to use this field, e.g. for• Hop Counter (See Comment section)• Proximity Congestion Awareness[19] implementation, i.e the field is used foravoiding congesting <strong>by</strong> transmission of local congestion <strong>The</strong> Proximity CongestionAwareness (PCA) is an incoming signal to the Switch from all its surroundingneighbours. <strong>The</strong> signal is used to signal the degree of congestion in this direction.27


December 6, 2002 1:51 pm <strong>Nostrum</strong> - 5.3• Empty packet indication• As a pure priority set <strong>by</strong> the application at the f_transmitPacket(...) functioncall• As channel selector in the case of a virtual channel implementationIn the implementation of the PCA the priority field could be interpreted in the followingwayHop Counter - 5 bitsPCA information - 4 bitsEmpty packet indicator - 1 bitCommentsThis is a section for additional comments around the topic of routing. Thispart might be omitted in the final document.<strong>The</strong> Destination Address is the “obvious” physical destination address whereas theHop-Counter is a counter tracking the number of hops a packet has done, i.e. theHop-Counter is increased <strong>by</strong> one for every hop taken. <strong>The</strong> higher Hop-Counter, thehigher priority that packet will get in case of a competitive situation in the SwitchIn our current implementation ten bits have been used for the Destination <strong>and</strong> theSource Address each, whereas seven bits have been allocated for the Hop-Counter.<strong>The</strong> reason for choosing seven bit is that we assume that the maximum hops apacket has to undergo under any circumstances is twice the diameter of the network,i.e. 2×2n.5.3.2 <strong>The</strong> Service of Pid to Logic Address Mapping Administation - St<strong>and</strong>ard<strong>The</strong> St<strong>and</strong>ard service of Pid to Logic Address Mapping provides the user with a set offunction for manipulating the mapping of Pids to Logic Addresses i.e. where a processis currently running. <strong>Suggested</strong>f_getSelfAddressf_mapPidtoAddressf_sendPid<strong>and</strong>AddresstoAddressf_sendPid<strong>and</strong>AddresstoPidf_getAddressf_getPid(5.3.3 <strong>The</strong> Service of Network Diagnostics - St<strong>and</strong>ardf_getPCA V?f_snoop ?Network Layer - ControlBetween the Switches some control signals might be needed in order to secure thetraffic flow.packets Not Accepted One of these control signals is the Packets Not Accepted signal.<strong>The</strong> Packets Not Accepted signal is a signal used for signalling whether a Switchaccepts packets from one of its neighbouring Switches the next transmit round. <strong>The</strong>reason for raising this signal could be on of the following:• <strong>The</strong> Switch’s corresponding Resource wants to transmit a Message on a too heav-28


December 6, 2002 1:51 pm<strong>Nostrum</strong> - VI.ily loaded network. <strong>The</strong> raising of this signal guarantees that a Message can besent out the next transmission round.• <strong>The</strong> Switch is broken or unavailable due to multiple sized Resources, see• A priority Message path might have been set up - this is however not definedwithin the original NoC Backbone set-up. For more information seeIn the current implementation one bit has been allocated for the Packets NotAccepted signal.VI.SOME GUIDELINES WHEN DESIGNING FOR NOSTRUM<strong>The</strong> purpose of this chapter is to give some general guidelines when designing for the<strong>Nostrum</strong>. <strong>The</strong>se guidelines apply both to the end application designer as well as tothe designer of functionality in the protocol stack. In both cases you as the designerare the User/Provider of <strong>Services</strong>. Now there exist three main questions.Q1. Where in the protocol stack does the functionality that I intend to implement fitin?Q2. What are the service that I want to offer to the application above?Q3. What are the services that I need/require in order to implement my services?A1. <strong>The</strong> answer to the question one is most easily found <strong>by</strong> looking at the suggestedresponsibilities in Section IV - <strong>The</strong> <strong>Nostrum</strong> <strong>Protocol</strong> <strong>Stack</strong>. <strong>The</strong> servicesdefined here are suggestions <strong>and</strong> should be treated as guidelines for further development.However, the <strong>Protocol</strong> Data Unit used gives a clear hint of what kind of servicesthis layer is intended to provide.A2. <strong>The</strong> answer to question two must be the easiest AND the trickiest one... It’seasy in the sense that you wanted to implement some kind of service <strong>and</strong> that’s thereason for reading this, i.e. this is the answer that you thought you already had ;)On the other h<strong>and</strong>, to formulate this in a comprehensive way will be hard :( but don’tdespair. My tip is to formulate it in terms of function calls. <strong>The</strong>se function calls29


December 6, 2002 1:51 pm<strong>Nostrum</strong> - VII.should alone suffice when implementing the service intended.function f_transmitMessage(dpid, data, MSN) f_MessageReceived(dpid, data, MSN)SAPMessage TransmissionUser/Provider of ServiceSAPPacket Transmissionfunction f_transmitPacket(dpid, data) f_packetReceived(dpid, data)<strong>Nostrum</strong> ApplicationFIGURE 6.1Overview of User/Provider of Service <strong>and</strong> the Application versus the <strong>Nostrum</strong> backboneA3. <strong>The</strong> partial answers to the last question should hopefully be at h<strong>and</strong> afteranswering question two. Now it is time to see what’s available; hopefully somebodyalready have implemented the service <strong>and</strong> the corresponding functions in the <strong>Nostrum</strong>protocol stack. Remember, everything that is below the current layer is <strong>Nostrum</strong><strong>and</strong> everything (if there exist anything, that is) above the current layer isApplication!If the service you need is available - use it! If not, its time to either change your servicedefinition or start to implement the services that you need at a lower level.VII. REFERENCES[ 1- VSI] Virtual Socket Interface Alliance, Virtual Component Interface St<strong>and</strong>ard Version2, March 2000. http://www.vsi.org[ 2- SONICS] Sonics Inc., http://www.sonicsinc.com[ 3- GUERRIER-A GENERIC...] P. Guerrier <strong>and</strong> A. Greiner. A generic architecture for onchippacket-switched interconnections. In Proc. of DATE 2000, March 2000.[ 4- BENINI-POWERING...] L. Benini <strong>and</strong> G. DeMicheli. Powering networks on chip. InProc. of the 14th Int. Symposium on System Synthesis, Oct. 2001.[ 5- BENINI-NOCS: A NEW SOC...] L. Benini <strong>and</strong> G. DeMicheli. Networks on chip: A newSoC paradigm. IEEE Computer, 35(1): p. 70 ff., Jan. 2002[ 6- KTH-VTT02 - NOC ARC] Shashi Kumar, Axel Jantsch, Juha-Pekka Soininen, MarttiForsell, Mikael Millberg, Johnny Öberg, Kari Tiensyrjä, <strong>and</strong> Ahmed Hemani. A network on30


December 6, 2002 1:51 pm<strong>Nostrum</strong> - VII.chip architecture <strong>and</strong> design methodology. In Proceedings of IEEE Computer Society.Annual Symposium on VLSI, April 2002.[ 7- GOOSSENS - COMBINING BEST-EFFORT...] K. Goossens et al., Networks on Silicon:Combining Best-Effort <strong>and</strong> Guaranteed <strong>Services</strong>, DATE 2002, March 2002.[ 8- DALLY - ROUTE PACKETS...] W. J. Dally <strong>and</strong> B. Towles. Route packets, not wires:On-chip interconnection networks. In Proc. of DAC 2001, June 2001.[ 9- SGROI - ... SOC INTERCONNECT WOES...] M. Sgroi et al. Addressing the system-ona-chipinterconnect woes through communication-based design. In Proc. of DAC 2001,June 2001.[ 10- WINGARD - MICRONETWORK...] Drew Wingard, “MicroNetwork-Based Integrationof SoCs”, In Proc. of DAC 2001, June 2001.[ 11- CULLER - PARALLEL COMPUTER...] David E. Culler <strong>and</strong> Jaswinder Pal Singh,“Parallel Computer Architecture - a Hardware Software Approach”, 1999, MorganKaufmann Publishers, Inc., ISBN 1-55860-343-3[ 12- LEISERSON - FAT TREES] C. E. Leiserson. Fat Trees: Univ. Networks for HardwareEfficient Supercomputing. IEEE Computer, p 892 ff. vol. c-34, No 10, Oct. 1985.[ 13- MPI] Message Passing Interface Forum. MPI: A Message Passing Interface St<strong>and</strong>ard.Version 1.1, http://www.mpi-forum.org, 1995[ 14- FURBER - ARM] Steve Furber. ARM: system-on-chip architecture. Second edition2000, Addison-Wesley Publishing Company, ISBN 0-201-67519-6[ 15- IRVINE - DATA COMMUNICATIONS...] J. Irvine <strong>and</strong> D. Harle, “Data Communications<strong>and</strong> Networks - an Engineering Approach”, 2002, John Wiley & Sons, ISBN 047180872 5[ 16- FEIGE - HOT-POTATO] Feige, U.; Raghavan, P. Exact analysis of hot-potato routing.Foundations of Computer Science. In Proc. of the 33rd Annual Symposium on, p. 553 -562, 1992[ 17- DALLY - DEADLOCK-FREE MESSAGE] W. Dally, C. Seitz, Deadlock-free MessageRouting in Multiprocessor Interconnection Networks, IEEE Trans. on Computers, vol. C-36, no. 5, p. 547-553, May 1987.[ 18- HEGDE - ENERGY EFFICIENCY] R. Hegde <strong>and</strong> N. Shanbhag, Toward AchievingEnergy Efficiency in Presence of Deep Sub-micron Noise, IEEE Trans. VLSI Systems, p.379-391, Aug. 2000[ 19- NILSSON - PCA] lErl<strong>and</strong> Nilsson et al. Load distribution with Proximity CongestionAwareness in a Network on Load distribution with Proximity Congestion Awareness in aNetwork on Chip, Submitted to DATE 2003[ 20- THID - NOCSIM] Rikard Thid et al. A Simulator for the <strong>Nostrum</strong> Network on ChipArchitecture, Submitted to DATE 2003, Authors Suppressed[ 21- STALLINGS1994] William Stallings, “Data <strong>and</strong> Computer Communications” -31


December 6, 2002 1:51 pm<strong>Nostrum</strong> - VII.Fourth Edition, 1994, Prentice-Hall International, ISBN 0-13-326828-4[ 22- ZIMMER2002] Heiko Zimmer’s erroneous theses ;)[ 23- OCP] Open Core <strong>Protocol</strong> Specification, OCP-IP Association. http://www.ocpip.org/home[ 24- ]32

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!