부리부리의 음악세상

buriburi.egloos.com

포토로그 마이가든

나 혼자만의 이기적인 행복을 바라지 말자..
by 부리부리


Virtual-channel flow control: Definition NoC 메모

1. Several virtual channels may share the bandwidth of a single physical channel.

2. Virtual channels decouple allocation of buffers from allocation of channels by providing multiple buffers for each channel in the network.

3. Adding virtual channels to an interconnection network is analogous to adding lanes to a street network. A network without virtual channels is composed of one-lane streets. In such a network, a single blocked packet blocks all following packets. Adding virtual channels to the network adds lanes to the streets allowing blocked packets to be passed.
==> 예술적인 비유(--;;)

4. Costs
- Most costly resource in an interconnection network is physical channel (wire) bandwidth.
- The second is buffer memory.
- In order to add virtual-channels, the only expense is a small amount of additional control logic.

An interconnection network NoC 메모

1. An interconnection network is characterized by its topology, routing, and flow control.
Topology is the arrangement of nodes and channels into a graph.
Routing specifies how a packet chooses a path in this graph.
Flow control deals with the allocation of channel and buffer resources to a packet as it traverses this path.

2. Throughput is limited to a fraction (typically, 20%~50%) of the network's capacity due to coupled resource allocation.

3. Interconnection networks consist of buffers and channels.

4. Once a packet A is allocated a buffer b_i, no other packet B can use the associated channel c_i until A releases b_i.

5. The problem of idling channels due to resource coupling is unique to interconnection networks that perform flow control at the flit-level. Most modern multicomputer networks that use circuit switching or wormhole routing fall into this class. The problem does not occur in traditional packet-switched networks that perform flow control at the packet level since such networks never block a partially transmitted packet.

Message의 구조 NoC 메모

message -> packet -> flit -> phit

message:

bit의 연속. 전송하려는 내용.

packet:
message를 fixed-size chunk로 쪼갠 형태.
routing과 sequencing의 기본 단위 (routing information: RI을 가짐).
control state는 packet 단위로 할당됨.
optional하게 sequence number (SN)을 가질 수 있음. 이것은 message 내의 서로 다른 packet이 source-destination 사이에 서로 다른 path를 가질 수 있으므로, 이후에 message를 re-order하기 위해 필요.

flit:
bandwidth와 storage allocation의 기본 단위.
flit 내에는 routing과 sequencing 정보가 없음! => flit마다 서로 다른 routing 경로를 가지는 경우는 없음.
head flit은 packet의 routing 정보를 포함하고, 이후 body flit, tail flit은 head flit의 routing path를 줄줄 쫓아감.

message가 router를 왔다갔다 하려면? NoC 메모

A message must be allocated resources: channel bandwidth, buffer capacity, and control state.

packet은 먼저 control state를 얻어야 함.
여러 packet이 한 physical channel을 공유하는 구조에서는 여러 control state가 필요함.
control state는 router 안에서 packet의 할당 상태 및 router 내에서의 packet의 전송 상태를 추적함.

일반적으로,
control state: packet 단위
channel bandwidth/buffer capacity: flit 단위


VCID는 왜 필요한가? NoC 메모

Flits may contain a virtual-channel identifier(VCID) to identify which packet the flit belongs to in systems where multiple packets may be in transmit over a single physical channel at the same time.

flit이 자기가 어떤 packet에 속했는지를 판단하기 위해 flit 내에 VCID 필드가 필요해.
만약에 packet이 같은 route를 거치면 별 상관 없겠지만, 서로 다른 packet이 같은 physical channel을 공유하는 경우에는 어떤 virtual channel에 속하는지를 판단해야 되니까.

참고로 virtual channel state는 packet 단위로 이루어짐.

1