Lec21 - Interconnect

한국어판 강의자료 · 53쪽
1쪽
p.1
2쪽
p.2interconnection network(상호연결망)
  • - programmable(프로그래머블) 시스템으로, terminal(단말기) 간 데이터를 전송한다.
  • - programmable(프로그래머블): 시간에 따라 다른 연결을 만들 수 있다 (예: t0에 T1에서 T3, t1에 T1에서 T5)
  • - 단말기(또는 처리 요소): 계산 코어, 캐시, 메모리 컨트롤러 등
3쪽
p.3interconnection network(상호연결망)
  • - 병렬 컴퓨터 아키텍처의 핵심을 이루는, 병렬 시스템을 연결하는 핵심 요소
  • - LAN/WAN과 기본 개념은 유사하지만, 매우 다른 시간 규모/요구사항으로 인해 매우 다른 트레이드오프를 가진다
4쪽
p.4네트워크의 다양한 규모
  • - 네트워크온칩 (NoC)
  • - 최대 수백 개의 노드
  • - processor interconnect(프로세서 상호연결)
  • - 최대 수백 개의 노드
  • - large-scale interconnect(대규모 상호연결)
  • - 최대 수천 개의 노드
5쪽
p.5코어 수 증가에 따라...
  • - on-chip(온칩) interconnection network(상호연결망)의 scalability(확장성)이 점점 더 중요해진다
6쪽
p.6Terminology(용어 정리)
7쪽
p.7구성 요소
  • network node(네트워크 노드): 라우터/스위치에 연결된 네트워크 종단점
  • 예: 프로세서 캐시, 메모리 컨트롤러
  • network interface(네트워크 인터페이스):
  • 노드를 네트워크에 연결함
  • Switch/Router(스위치/라우터):
  • 고정된 수의 입력 link(링크)를 고정된 수의 출력 링크에 연결함
  • 간접형 네트워크의 경우 '스위치 노드'로 간주할 수 있음
  • link(링크):
  • 신호를 전달하는 와이어의 묶음
8쪽
p.8핵심 성능 지표
  • throughput(처리량): 네트워크가 입력 포트당 초당 수용하는 데이터 속도 (비트/초)
  • 일부 경우 전체 입력 포트를 통한 총 수용 데이터 속도가 보고됨
  • latency(지연시간):
  • packet(패킷)이 네트워크를 통과하는 데 소요되는 시간. 패킷의 헤드가 입력 포트에 도착한 시점부터 패킷의 테일이 출력 포트를 떠나는 시점까지
  • zero-load latency(무부하 지연시간) (즉, contention(경합) 없음):
  • T0 = (헤드 지연시간) + (시리얼화 지연시간)
  • = (Hmintr + Dmin / v) + L/b
  • 여기서 Hmin은 평균 홉 수, tr은 router delay(라우터 지연), Dmin은 평균 거리, v는 propagation velocity(전파 속도), L: packet length(패킷 길이), b: channel bandwidth(채널 대역폭)
  • 경쟁으로 인해 대기열 지연을 T0에 추가할 수 있음
9쪽
p.9핵심 성능 지표 (계속)
  • path diversity(경로 다양성):
  • 대부분의 노드 쌍 사이에 여러 개의 minimal path(최소 경로)를 가진 네트워크는 노드 간 단일 경로만을 가진 네트워크보다 더 견고함
  • channel(채널)에 걸쳐 load(부하)를 균형 있게 분산시켜 네트워크의 견고성을 높이며, 고장난 채널과 노드를 견딜 수 있도록 함
10쪽
p.10네트워크의 latency(지연시간)-throughput(처리량) 특성
  • 일반적인 규칙: latency(지연시간)은 load(부하), 즉 throughput(처리량)가 증가할수록 증가함
  • 이 곡선은 traffic pattern(트래픽 패턴)에 따라 달라짐
  • load(offered traffic)(제공 트래픽) [비트/초]
  • latency(지연시간) [초]
11쪽
p.11ICN의 주요 측면
  • 토폴로지:
  • 네트워크 내 channel(채널)과 노드의 정적 배치
  • 라우팅:
  • message(메시지)/packet(패킷)이 따라갈 수 있는 경로 집합을 결정함
  • flow control(플로우 제어):
  • packet(패킷)에 대해 네트워크 자원(채널, buffer(버퍼) 등)을 할당하고 경쟁을 관리함
  • switch microarchitecture(스위치 마이크로아키텍처):
  • 네트워크 스위치의 내부 아키텍처
  • network interface(네트워크 인터페이스):
  • terminal(단말기)를 스위치에 연결하는 방법
  • link architecture(링크 아키텍처):
  • channel(채널)에서의 신호 전달 기술과 data representation(데이터 표현) 방식
12쪽
p.12토폴로지 유형
  • direct topology(직접형 토폴로지):
  • 각 라우터는 terminal(단말기) 노드와 연결됨
  • 모든 라우터는 트래픽의 원천이자 목적지임
  • indirect topology(간접형 토폴로지):
  • 라우터는 terminal(단말기) 노드와 구분됨
  • terminal(단말기) 노드는 트래픽을 생성하거나 수신할 수 있음
  • 중간 노드는 terminal(단말기) 노드 간 트래픽을 스위칭함
  • 라우터
  • 노드
13쪽
p.13상호연결 토폴로지의 특성
  • routing distance(라우팅 거리): 두 노드 사이 경로를 따라가는 link(링크)(hop(홉))의 수
  • diameter(지름): 네트워크 내 모든 terminal(단말기) 노드 쌍에 대한 최소 호프 수 중 최대값
14쪽
p.14컷과 bisection(이등분)
  • cut(컷): 모든 노드 집합을 두 개의 서로소 집합 N1과 N2로 분할하는 channel(채널)의 집합
  • bisection(이등분): 네트워크를 거의 반으로 나누는 컷
  • bisection(이등분) 노드 집합: |N2| ≤ |N1| ≤ |N2| + 1
  • bisection(이등분) terminal(단말기) 집합: |N2∩T| ≤ |N1∩T| ≤ |N2∩ T| + 1
  • bisection bandwidth(이등분 대역폭): 네트워크의 모든 bisection(이등분)에 대한 최소 대역폭
  • uniform random traffic(균일한 무작위 트래픽)에 대한 지속 가능한 네트워크 throughput(처리량)의 한계를 주로 결정함
  • crossbar(크로스바): 2 x link(링크) 대역폭
  • ring(링): 6 x link(링크) 대역폭
  • octagon(옥타곤): 16 x link(링크) 대역폭
15쪽
p.15토폴로지
16쪽
p.16토폴로지 유형
  • 우리는 스위치형 토폴로지를 중심으로 다룬다
  • 대안: 버스와 크로스바
  • → (+) 단순성, (-) scalability(확장성)
  • 버스: 여러 구성 요소를 단일 공유 channel(채널)에 연결
  • 효과적인 브로드캐스트 매체
  • 크로스바: 중간 단계 없이 n개의 입력을 m개의 출력에 직접 연결
  • 완전 연결, 단일 호프 네트워크
  • 일반적으로 스위치의 내부 구성 요소로 사용됨
  • 이 예시 크로스바는 입력 1,0,3,1,2가 각각 출력 0,1,2,3,4에 연결됨
17쪽
p.17torus(토러스)와 mesh(메시)
  • 직접형 네트워크의 예
  • torus(토러스): k-ary n-cube(k-ary n-큐브)
  • 각 차원에 k개의 노드를 가진 n차원 격자
  • • k는 radix(기수)라 불림
  • kn개의 노드; 차수 = 2n (각 차원당 n개의 채널)
  • 각 노드는 격자 내 인접한 노드들과 연결됨
  • 각 차원의 가장자리 노드들 간에도 연결됨
  • mesh(메시): k-ary n-mesh(k-ary n-메시)
  • 가장자리 노드들 간의 channel(채널)이 없는 torus(토러스)와 유사
18쪽
p.18torus(토러스)와 mesh(메시)
  • n-큐브는 서로 다른 차원에서 서로 다른 radix(기수)를 가질 수 있음
  • 예: Y차원에 2, Z차원에 3, X차원에 4
  • 매우 규칙적: k개의 n-차원 큐브를 배열하여 (n+1)-차원 큐브를 구성할 수 있음
  • 이웃하는 노드들의 대응 노드들을 연결함
  • 2,3,4-ary 3-큐브
  • k-ary n-cube(k-ary n-큐브)
  • ...
  • k-ary n-cube(k-ary n-큐브)
  • kn개의 channel(채널)
  • k-ary n-cube(k-ary n-큐브)
19쪽
p.19torus(토러스)와 mesh(메시)
  • 이 가족에 속한 유명한 토폴로지들:
  • • 링: k-ary 1-큐브
  • • 2D 및 3D 격자
  • • hypercube(하이퍼큐브): 2-ary (이진) n-큐브
  • • 1D 또는 2D는 on-chip(온칩) 평면 기판에 잘 매핑됨
  • • 3D는 3D 공간(예: supercomputer(슈퍼컴퓨터))에서 구축하기 쉬움
  • • torus(토러스)는 모서리 대칭성(edge symmetry)을 가짐
  • • load balancing(로드 밸런싱)에 유리
  • • mesh(메시)에서 래핑된 link(링크)를 제거하면 edge symmetry(모서리 대칭성) 상실
  • • 중심 channel(채널)에 더 많은 트래픽 집중
  • • 좋은 경로 다양성(path diversity) 제공
  • • 근접 이웃 트래픽을 위한 locality(지역성) 활용
  • • 많은 과학 계산에 중요
  • • 집중형 메시 (Concentrated-Mesh)
  • (+) 네트워크 지름(diameter) 감소
  • (−) 라우터 복잡성 증가
  • (라우터당 더 많은 포트 필요)
20쪽
p.20folded torus(접힌 토러스) 구현
  • • torus(토러스) 토폴로지는 각 차원에 긴 엔드어라운드 채널(길이: k)을 생성함
  • • 매우 긴 latency(지연시간) 또는 느린 신호 전달 속도
  • • torus(토러스) 네트워크를 접는(folding) 방식으로 문제 해결 가능
  • • 그림 출처: PRINCIPLES AND PRACTICES OF INTERCONNECTION NETWORKS, Dally and Towles, 2004
  • • 접힌 4-ary 2-큐브
21쪽
p.21hierarchical ring(계층형 링)
  • • 링 토폴로지는 라우터 비용을 줄이지만 확장성(scalability)이 좋지 않음
  • • hierarchical ring(계층형 링)은 scalability(확장성)을 개선할 수 있음
  • • 그림 출처: H. Kim, et al., "Transportation-network-inspired network-on-chip," HPCA’14
22쪽
p.22ring(링), mesh(메시), torus(토러스)의 실제 사례
  • • Intel CPU의 ring(링) 및 mesh(메시) NoC
  • • Japan의 Fugaku supercomputer(후가쿠 슈퍼컴퓨터)의 6D mesh(메시)/torus(토러스) 상호연결
  • • 2021년 Top500 1위
23쪽
p.23tree(트리)
  • • diameter(지름)과 평균 거리는 로그 단위
  • • k-ary tree(트리), 높이 = logk N
  • • 각 라우터는 k개의 자식을 가짐
  • • 공통 조상까지 올라간 후 다시 내려감
  • • 이등분 대역폭(bisection bandwidth)은?
  • • 2D 레이아웃의 tree(트리) 토폴로지
  • • tree(트리) 토폴로지
24쪽
p.24fat tree(팻 트리)
  • • 각 레벨에서 대역폭이 일정 유지
  • • tree(트리)와 달리 루트에 가까워질수록 대역폭이 감소하지 않음
  • • fat link(팻 링크)는 대역폭 증가(희귀) 또는 channel(채널) 수 증가(더 흔함)로 구현 가능
  • • 2D 레이아웃의 fat tree(팻 트리) 토폴로지
  • • fat tree(팻 트리) 토폴로지
25쪽
p.25Butterfly(버터플라이) (1/2)
  • 간접형 네트워크
  • k-ary n-fly(k-ary n-플라이): kn개의 terminal(단말기)
  • k: 각 스위치의 입력/출력 degree(차수)
  • n: 단계 수
  • 각 단계에는 kn-1개의 k×k 스위치 존재
  • 호프 수 = logk N + 1
  • 예: 000에서 010으로의 라우팅
  • 목적지 주소를 사용하여 packet(패킷)을 직접 라우팅
  • j번째 비트를 사용하여 단계 j에서 출력 포트 선택
26쪽
p.26Butterfly(버터플라이) (2/2)
  • path diversity(경로 다양성) 없음. |Rxy| = 1
  • 다양성을 위해 추가 단계를 추가할 수 있으나, 네트워크 diameter(지름) 증가
  • locality(지역성)를 활용하지 않음
  • 위치에 관계없이 호프 수 동일
  • 구현을 위해 긴 배선 필요
27쪽
p.27Clos Network(클로스 네트워크) (1/2)
  • 3-stage Clos Network(3단계 클로스 네트워크)
  • 입력 스위치
  • 출력 스위치
  • 중간 스위치
  • 파라미터
  • m: 중간 스위치 수
  • n: 가장자리 스위치의 입력/출력 도수
  • r: 입력/출력 스위치 수
  • 3-stage Clos Network(3단계 클로스 네트워크) (m = 5, n = 3, r = 4)
28쪽
p.28Clos Network(클로스 네트워크) (2/2)
  • path diversity(경로 다양성) 제공
  • |Rxy| = m (중간 스위치 수)
  • 모든 중간 스위치를 통과하는 경로 하나씩 존재
  • 중간 단계를 다른 Clos Network(클로스 네트워크)로 대체함으로써 단계 수(및 다양성) 증가 가능
  • (2,2,2) 클로스
29쪽
p.29Folded Clos Network(접힌 클로스 네트워크)
  • 중간 단계를 따라 네트워크를 접어 입력/출력 스위치 공유 가능
  • 오른쪽 부분은 fat tree(팻 트리)
  • 고대역폭 link(링크) 대신 더 많은 링크를 사용하는 대안 구현
30쪽
p.30그 외 토폴로지들…
  • 문헌에서 다루어진 다양한 특성을 가진 기타 토폴로지 존재
  • omega network(오메가 네트워크)
  • benes network(베네스 네트워크)
  • bitonic network(비토닉 네트워크)
  • flattened butterfly(평탄화된 버터플라이)
  • dragonfly(드래곤파이)
  • cube-connected cycles(큐브 연결 사이클)
  • HyperX(하이퍼엑스)
  • …
  • 그러나 이러한 일부는 일반 목적 하드웨어에서 사용되지 않는 특수 목적용인 경우가 많음
31쪽
p.31irregular topology(비정형 토폴로지)
  • MPSoC(다중프로세서 시스템온칩) 설계에서 흔함
  • MPSoC 설계는 다양한 IP 블록을 활용함 — 이로 인해 이질성으로 인해 정형 토폴로지가 적절하지 않을 수 있음
  • 맞춤형 토폴로지
  • 일반적으로 더 높은 전력 효율성과 더 나은 성능을 제공함
  • traffic characterization(트래픽 특성 분석)을 기반으로 맞춤형 설계함
  • 일반적으로 automatic tool(자동 도구)를 사용하여 합성됨
32쪽
p.32flow control(플로우 제어)
33쪽
p.33flow control(플로우 제어) 개요
  • flow control(플로우 제어): message(메시지)가 네트워크를 통과할 때 resource allocation(자원 할당)을 결정함
  • 자원: buffer(버퍼)와 link(링크)
  • 네트워크의 throughput(처리량)과 latency(지연시간)에 큰 영향을 미침
  • flow control(플로우 제어) 단위:
  • message(메시지): 하나 이상의 packet(패킷)으로 구성됨
  • • message size(메시지 크기)가 maximum packet size(최대 packet(패킷) 크기) 이하이면 단일 패킷만 생성됨
  • packet(패킷): 하나 이상의 flit(플릿)으로 구성됨. head flit(헤드 플릿)에 routing information(라우팅 정보) 포함됨
  • flit(플릿): flow control(플로우 제어) 단위
  • • flow control(플로우 제어) 방법이 인식하는 정보의 최소 단위
  • phit(피트): physical digit(물리 디지트)
  • • 물리적 link(링크)는 더 높은 클럭 주파수로 동작할 수 있음
  • • flit(플릿)을 조각들로 나누어 link width(링크 폭)과 동일하게 함
34쪽
p.34flow control(플로우 제어) 개요
  • off-chip(오프칩): 핀의 제한으로 인해 channel(채널) 폭이 제한됨 — phit(피트) < flit(플릿)이 필요함
  • on-chip(온칩): abundant wiring(풍부한 배선)으로 인해 phit(피트) 크기 == flit(플릿) 크기
  • VCID: virtual channel ID(가상 채널 ID) (나중에 다룸)
  • 경로
  • 순서번호
  • 유형
  • VCID
  • packet(패킷)
  • flit(플릿)
  • 헤드, 바디, 테일, 헤드 및 테일
  • phit(피트)
  • 헤더
  • 페이로드
  • head flit(헤드 플릿)
  • body flit(바디 플릿)
  • tail flit(테일 플릿)
  • message(메시지)
35쪽
p.35packet(패킷) 예시
  • packet(패킷)은 목적지/경로 정보를 포함함
  • flit(플릿)은 일반적으로 포함하지 않음 — packet(패킷)의 모든 플릿은 동일한 경로를 따라야 함
  • RC
  • cache line(캐시 라인)
  • 유형
  • VCID
  • 주소
  • head flit(헤드 플릿)
  • 바이트 0-15
  • 바이트 16-31
  • 바이트 32-47
  • 바이트 48-63
  • body flit(바디 플릿)
  • tail flit(테일 플릿)
  • RC
  • coherence(코히어런스)
  • command(명령)
  • 유형
  • VCID
  • 주소
  • head & tail flit(헤드 앤 테일 플릿)
  • command(명령)
36쪽
p.36스위칭
  • 다양한 흐름 제어 기법은 세분화 수준에 따라 다름
  • circuit-switching(회로 스위칭): message(메시지) 또는 여러 message(메시지) 단위로 작동함
  • packet(패킷) 기반: 전체 패킷에 대해 할당함
  • flit(플릿) 기반: 플릿 단위로 할당함
37쪽
p.37message(메시지) 기반 flow control(플로우 제어)
  • 가장 큰 granularity(세분화 수준)
  • circuit-switching(회로 스위칭)
  • 여러 홉에 걸쳐 자원을 사전 할당
  • • 소스에서 목적지까지
  • • 자원 = 링크 (버퍼는 필요 없음)
  • • 예: 고정선 전화 서비스
  • 네트워크에 probe(프로브)를 보내어 자원을 예약
  • probe(프로브)가 회로를 설정한 후 message(메시지)는 각 홉에서 라우팅이나 할당이 필요 없음
  • 대량의 data transfer(데이터 전송)에 적합
  • 전송이 완료될 때까지 예약된 자원을 다른 message(메시지)가 사용할 수 없음
  • 회로의 설정 및 유지 시간으로 인해 throughput(처리량)이 저하될 수 있음
  • 설정이 완료될 때까지 link(링크)가 비활성 상태
38쪽
p.38Time-Space diagram(시간-공간 다이어그램): circuit-switching(회로 스위칭)
  • 코어 0에서 코어 8로의 circuit-switching(회로 스위칭)
  • S: setup flit(설정 플릿)
  • A: ack flit(확인 플릿)
  • D: 데이터 message(메시지)
  • T: tail deallocation flit(테일 할당 해제 플릿)
  • 코어 2 정지
  • 코어 2 resume(재개)
  • 코어 0에서 전송할 데이터 없음
  • Src
  • Dst
39쪽
p.39packet(패킷) 기반 flow control(플로우 제어)
  • message(메시지)를 packet(패킷)으로 분할
  • link(링크)에서 packet(패킷)을 interleave(인터리브)함
  • 더 나은 자원 활용
  • 비행 중인 packet(패킷)을 저장하기 위해 각 노드의 buffer(버퍼)가 필요
  • packet(패킷) 기반 기법의 두 가지 유형
  • store & forward(스토어 앤 포워드)
  • virtual Cut-Through(가상 컷스루)
40쪽
p.40Store & Forward(스토어 앤 포워드) (S&F)
  • link(링크)와 buffer(버퍼)가 전체 packet(패킷)에 대해 할당됨
  • head flit(헤드 플릿)은 전체 packet(패킷)이 수신될 때까지 라우터에서 대기 (스토어)
  • 그 후 다음 홉으로 포워딩 (포워드)
  • buffer(버퍼)가 비싸기 때문에 on-chip(온칩)에는 적합하지 않음
  • 각 라우터에서 전체 packet(패킷)을 보관하기 위한 buffer(버퍼)가 필요
  • buffer(버퍼)가 전체 packet(패킷)에 대해 할당될 때까지 패킷이 link(링크)를 통과할 수 없음
  • 각 홉에서 시리얼화 지연을 지불하므로 높은 홉당 지연 발생
41쪽
p.41Virtual Cut-Through(가상 컷스루) (VCT)
  • link(링크)와 buffer(버퍼)가 전체 packet(패킷)에 대해 할당됨
  • 현재 라우터에서 tail flit(테일 플릿)이 수신되기 전에도 flit(플릿)이 다음 홉으로 진행될 수 있음
  • 다음 라우터가 전체 packet(패킷)을 저장할 수 있는 충분한 buffer(버퍼) 공간을 가질 경우에 한함
  • store & forward(스토어 앤 포워드)에 비해 지연 시간을 크게 감소
  • 여전히 큰 buffer(버퍼)가 필요함
  • on-chip(온칩)에는 부적합
42쪽
p.42Time-Space diagram(시간-공간 다이어그램): VCT
  • buffer(버퍼) 공간 부족으로 인해 진행 불가
  • 현재 2개의 flit(플릿) buffer(버퍼)만 사용 가능
43쪽
p.43flit(플릿) 수준의 flow control(플로우 제어)
  • flit(플릿)이 다음 라우터로 진행할 수 있는 조건은 해당 플릿을 위한 buffer(버퍼) 공간이 확보되었을 때이다.
  • 스토어 앤 포워드(S&F) 및 가상 컷스루(VCT)보다 flit(플릿) 단위로 buffer(버퍼)를 할당함으로써 개선된다.
  • 라우터의 좁은 면적/전력 제약을 충족하는 데 도움이 된다.
  • 이 방식을 Wormhole Flow Control(웜홀 플로우 제어)이라고 한다.
  • (+) 더 효율적인 buffer(버퍼) 활용도 (온칩 환경에 적합)
  • (+) 낮은 latency(지연시간)
  • (-) 낮은 link(링크) 활용도: head flit(헤드 플릿)이 차단되면 packet length(패킷 길이)에 걸쳐 있는 모든 링크가 비활성 상태가 된다.
  • 다른 packet(패킷)에 의해 재할당될 수 없다.
  • head-of-line(HOL) blocking(헤드 오브 라인 차단)에 취약하다.
44쪽
p.44웜홀 예시 (HOL)
  • 입력 포트당 6개의 flit(플릿) buffer(버퍼)
  • 다른 packet(패킷)에 의해 차단됨
  • channel(채널)은 비어 있지만 빨간 packet(패킷)은 파란 패킷 뒤에 차단됨
  • buffer(버퍼)가 가득 차서 파란 packet(패킷)은 진행할 수 없음
  • 빨간 packet(패킷)이 이 channel(채널)을 점유하고 있으므로, 빨간 패킷이 진행하기 전까지 채널은 비활성 상태로 유지된다.
45쪽
p.45Time-Space diagram(시간-공간 다이어그램): 웜홀
  • 각 라우터는 두 개의 flit(플릿)을 저장할 수 있다고 가정한다.
  • head flit(헤드 플릿)이 코어 2로 이동할 때까지 코어 1에 buffer(버퍼) 공간이 없기 때문에, 나머지 두 개의 바디 및 tail flit(테일 플릿)은 코어 0에서 stalled(정지된)다.
46쪽
p.46가상 channel(채널) flow control(플로우 제어)
  • 가상 채널(VC): 입력 포트당 여러 개의 flit(플릿) 큐
  • 동일한 물리적 링크(채널)를 공유한다.
  • 웜홀에서의 헤드 오브 라인(HOL) 차단을 완화하기 위해 사용된다.
  • 다른 VC에 있는 flit(플릿)은 차단된 packet(패킷)을 통과시킬 수 있다.
  • link(링크) 활용도가 향상된다.
  • VC는 처음에 deadlock avoidance(교착 상태 회피)를 위해 제안되었다.
  • 모든 flow control(플로우 제어)에 적용 가능하다.
  • 처음에는 웜홀과 함께 제안되었다.
47쪽
p.47가상 channel(채널) 예시
  • 입력 포트당 6개의 flit(플릿) buffer(버퍼)
  • 가상 channel(채널)당 3개의 flit(플릿) buffer(버퍼)
  • 다른 packet(패킷)에 의해 차단됨
  • buffer(버퍼)가 가득 차서 파란 packet(패킷)은 진행할 수 없음
48쪽
p.48기법 요약
  • link(링크)
  • buffer(버퍼)
  • 비고
  • circuit-switching(회로 스위칭)
  • message(메시지)
  • N/A (버퍼 없음)
  • 설정 및 확인
  • store & forward(스토어 앤 포워드)
  • packet(패킷)
  • packet(패킷)
  • head flit(헤드 플릿)은 테일이 도착할 때까지 대기
  • virtual Cut-Through(가상 컷스루)
  • packet(패킷)
  • packet(패킷)
  • 헤드는 진행 가능
  • Wormhole(웜홀)
  • packet(패킷)
  • flit(플릿)
  • HOL
  • virtual channel(가상 채널)
  • flit(플릿)
  • flit(플릿)
  • 다른 packet(패킷)의 flit(플릿)을 교차 배치
49쪽
p.49buffer(버퍼) 백프레셔
  • buffer(버퍼) 오버플로우를 방지하기 위한 메커니즘이 필요하다.
  • packet(패킷) 드롭을 방지함(lossless network(무손실 네트워크))
  • 상류 라우터는 하류 라우터의 buffer(버퍼) 가용성을 알아야 한다.
  • flow control(플로우 제어)가 달성하는 throughput(처리량)에 큰 영향을 미친다.
  • 두 가지 일반적인 메커니즘:
  • 크레딧
  • 온오프(여기서는 다루지 않음)
50쪽
p.50크레딧 기반 flow control(플로우 제어)
  • 상류 라우터는 각 하류 VC에 대한 크레딧 카운트를 저장한다.
  • '1 크레딧' == '하류 라우터가 1 flit(플릿)을 수락할 수 있다.'
  • 상류 라우터:
  • flit(플릿) 전달 시
  • • 크레딧 카운트 감소
  • • 카운트 == 0, 하류에서 buffer(버퍼)가 가득 찰 가능성이 있으므로 전송 중단
  • 하류 라우터:
  • flit(플릿) 전달 및 buffer(버퍼) 해제 시
  • • 상류 라우터로 크레딧 전송
  • • 상류 라우터는 크레딧 카운트 증가
  • buffer(버퍼)가 충분하지 않으면 throughput(처리량)이 크게 저하된다.
51쪽
p.51크레딧 기반 flow control(플로우 제어) 예시
  • PRINCIPLES AND PRACTICES OF INTERCONNECTION NETWORKS, Dally and Towles, 2004에서 인용한 그림
  • 노드 1이 세 flit(플릿) 패킷(헤드, 바디, 테일)을 전송 중이다.
  • VC
  • 출력 VC
  • VC status(유휴, 활성, 대기)
52쪽
p.52크레딧 타임라인
  • 라운드트립 크레딧 지연(tcrt):
  • 동일한 buffer(버퍼)에 대해 연속적인 크레딧 사이의 최소 시간
  • 백프레셔가 throughput(처리량)을 제한하지 않도록 한다.
  • buffer(버퍼)는 tcrt 이상의 flit(플릿)을 보유해야 한다.
  • 예시:
  • 데이터 및 크레딧의 전파 지연: 1 사이클
  • 크레딧 처리 지연: 1 사이클
  • 라우터 파이프라인: 3 사이클
  • → 최소 6 flit(플릿) buffer(버퍼) 필요
53쪽
p.53질문?
  • 더 깊이 이해하고 싶다면 다음 책들을 참고하세요.
  • 인터커넥션 네트워크에 대해 더 배우고 싶다면 이 책들을 참조하세요
단축키
Ctrl K · s자료 검색
[ ]이전·다음 강의
Space영상 재생·정지
j k다음·이전 section
n p다음·이전 slide
b강의 목록 접기·펴기
t맨 위
/강의 검색
Esc닫기