분류 전체보기 133

3.6 Principles of Congestion Control

3.6.1 The Causes and the Costs of Congestion  네트워크 혼잡(congestion)은 데이터를 보내는 송신자가 많아지며 네트워크 용량을 초과할 때 발생한다.이로 인해 패킷 손실, 지연 증가, 네트워크 성능 저하가 나타난다. 혼잡 문제를 해결하려면 혼잡의 원인과 그로 인한 비용을 이해해야 한다. 혼잡의 원인과 결과를 이해하기 위한 3가지 시나리오 Scenario 1: Two Senders, a Router with Infinite Buffers  • 환경: Host A와 Host B가 동일한 라우터와 단일 홉 링크를 공유한다. 라우터의 버퍼는 무한하다고 가정한다. • 상황 설명: • 두 호스트가 동일한 전송률()로 데이터를 전송하며, 공유 링크의 용량은 이다. • 링크 용..

3.5 Connection-Oriented Transport: TCP

3.5.1 The TCP Connection TCP 연결: 신뢰성 있는 데이터 전송을 위한 기반 TCP(Transmission Control Protocol)는 인터넷의 핵심적인 전송 계층 프로토콜로, 신뢰성 있는 데이터 전송을 제공한다.TCP는 “연결 지향적(connection-oriented)“이라는 특징을 가지며, 데이터 전송 전에 두 프로세스가 서로 연결을 설정해야 한다.이 연결 과정에서 데이터의 전송 및 수신을 위한 여러 상태 변수들이 설정된다. 1. 연결 지향적 (Connection-Oriented)의 의미 TCP가 연결 지향적이라는 것은, 데이터를 주고받기 전에 두 애플리케이션 프로세스가 반드시 **“핸드셰이크(handshake)”**를 통해 서로를 확인하고 연결을 설정해야 한다는 뜻이다.이..

5.3 The Basics of Caches

1. Cache (캐시):컴퓨터에서 프로세서와 메인 메모리 사이에 위치하여 데이터 접근 속도를 향상시키는 작고 빠른 임시 저장소이다.캐시는 데이터를 저장하고, 필요한 데이터를 메모리에서 가져오지 않고 빠르게 읽을 수 있도록 한다.캐시는 지역성(Locality) 원리를 기반으로 작동한다.  2. Direct-Mapped Cache (직접 매핑 캐시):캐시 구조 중 하나로, 각 메모리 주소가 캐시의 특정 위치에 고정적으로 매핑되는 방식이다.한 번에 특정 메모리 블록만 특정 캐시 슬롯에 저장될 수 있다.  3. Tag (태그):캐시에 저장된 데이터가 메모리의 어떤 블록에서 왔는지 식별하기 위한 추가 정보이다.메모리 주소의 일부가 태그로 사용된다.  4. Valid Bit (유효 비트):캐시 블록이 유효한 데이..

5.2 Memory Technologies

메모리 계층 구조는 크게 네 가지 주요 기술로 구성된다.1. SRAM (Static Random Access Memory): 주로 캐시에 사용되는 빠르고 비싼 메모리.2. DRAM (Dynamic Random Access Memory): 메인 메모리에 사용되는 비교적 느리지만 저렴한 메모리.3. Flash Memory: 모바일 기기 등에서 사용되는 비휘발성(non-volatile) 메모리.4. Magnetic Disk: 하드 디스크와 같이 대용량 데이터를 저장하는 데 사용되는 비휘발성 메모리. • Access Time데이터에 접근하는 데 걸리는 시간. SRAM이 가장 빠르고 Magnetic Disk가 가장 느리다.  • Cost메모리 용량당 비용. SRAM이 가장 비싸고 Magnetic Disk가 가장 ..

5. Large and Fast: Exploiting Memory Hierarchy(5.1 Introduction)

용어 정리  1. Principle of Locality (지역성의 원리) • Temporal Locality (시간적 지역성)프로그램에서 접근한 데이터는 가까운 미래에도 다시 접근될 가능성이 높음.예를 들어, 반복문에서 변수를 계속 사용하는 경우 해당 데이터에 시간적 지역성이 존재  • Spatial Locality (공간적 지역성) 프로그램이 특정 메모리 주소를 참조하면, 그와 가까운 주소들도 곧 참조될 가능성이 높음.예를 들어, 배열을 순차적으로 탐색할 때 데이터가 연속적으로 저장되어 있을 가능성이 높음   2. Memory Hierarchy (메모리 계층 구조) • 컴퓨터 시스템에서 메모리를 여러 계층으로 나누어 설계한 구조.CPU와 가까운 상위 레벨은 빠르고 비싸며 용량이 적고, CPU에서 먼 ..

4. The Processor (4.11 Parallelism via Instructions)

1. Pipelining과 Instruction-Level Parallelism (ILP) Pipelining은 여러 명령어가 동시에 실행되는 구조로, **Instruction-Level Parallelism (ILP)**을 활용하여 성능을 향상시킨다.ILP는 명령어들 간의 병렬성을 의미하며, 이를 극대화하기 위한 두 가지 방법이 있다.  • 파이프라인 깊이를 늘려서 병렬성 증가예를 들어, 세탁기를 세 개의 기계로 나누어 각기 다른 세탁 단계를 동시에 수행하면 전체 세탁 시간을 단축할 수 있다.파이프라인을 확장하여 명령어를 겹쳐서 실행할 수 있도록 한다.  • Multiple Issue 기법 사용 한 클록 사이클에서 여러 명령어를 실행할 수 있도록, 여러 명령어를 동시에 발행하는 기술이다. 세탁기를 여러..

4. The Processor (4.10 Exceptions)

예외와 인터럽트의 차이  • 예외 (Exception)프로그램 내에서 발생하는 예기치 않은 사건이다.예를 들어, 정의되지 않은 명령어가 실행되거나 하드웨어 고장이 발생하는 경우가 예외이다.  • 인터럽트 (Interrupt)외부 장치나 하드웨어가 발생시키는 이벤트이다.예를 들어, I/O 장치가 데이터를 준비했다고 알리거나 시스템의 타이머가 주기적인 작업을 요청하는 경우가 이에 해당한다. RISC-V에서는 예외라는 용어를 사용하여 프로그램 내에서 발생하는 모든 예기치 않은 이벤트를 의미하며, 인터럽트는 외부에서 발생하는 예외를 지칭한다.  예외 처리 방법 RISC-V 시스템에서 예외가 발생하면, 두 가지 주요 작업이 수행된다.  1. 예외가 발생한 명령어의 주소를 저장예외가 발생한 시점에서 현재 실행 중인..

4. The Processor (4.9 Control Hazards)

Control hazards 또는 branch hazards는 조건부 분기(instruction)의 실행 시 발생하는 문제이다.파이프라인에서 조건부 분기의 결과가 결정되기 전에 다른 명령들이 계속 실행되므로, 이러한 분기 명령이 언제 발생할지를 정확히 알 수 없다.예를 들어, 분기 명령을 포함한 파이프라인에서는 해당 명령이 언제 실행될지를 결정하기까지 지연이 발생하며, 이로 인해 예상된 명령 순서대로 실행되지 않으면 파이프라인의 성능에 영향을 미칠 수 있다. 여기서 핵심은 예측이다. 분기 예측(branch prediction)은 파이프라인이 진행될 때 분기가 발생할지 안 할지를 예측하여 성능 저하를 방지하는 방식이다.예측을 통해 분기가 발생할 경우 필요한 명령을 미리 로드하고, 예측이 틀린 경우에는 명령..

4. The Processor (4.8 Data Hazards:Forwarding versus Stalling)

sub x2, x1, x3 // Register x2 written by suband x12, x2, x5 // 1st operand (x2) depends on subor x13, x6, x2 // 2nd operand (x2) depends on subadd x14, x2, x2 // 1st(x2) & 2nd(x2) depend on subsw x15, 100(x2) // Base (x2) depends on sub여기서 x2 레지스터는 첫 번째 sub 명령어의 결과로 설정된다. 이후 다른 명령어들이 이 값을 사용하며 데이터 의존성을 발생시킨다. 예를 들어:•and 명령어는 x2 값을 첫 번째 피연산자로 사용한다.•or 명령어는 x2 값을 두 번째 피연산자로 사용한다.•add 명령어는 x2 값을 ..

4. The Processor (4.7 Pipelined Datapath and Control)

Figure 4.36: 파이프라인 실행을 위한 데이터 경로  • Figure 4.36에서는 파이프라인 실행을 가정하여 각 명령어가 고유의 데이터 경로를 가진다고 설명한다. '각 명령어는 각자의 데이터 경로를 가지며, 공유된 타임라인에 배치되어 서로의 관계를 나타낸다. • 여기서 중요한 점은 각 명령어의 데이터 경로가 단일 사이클 데이터 경로와 어떻게 연결되는지를 보여주고 있다는 것이다.각 명령어는 5단계(명령어 인출, 해석, 실행, 메모리 접근, 쓰기-back)로 나뉘어 실행되며,이들 각각은 고유한 파이프라인 레지스터를 통해 서로 연결된다. 예를 들어: • 명령어 메모리(IM)는 명령어 인출 단계에서 사용되고, 이후 레지스터 파일(Reg)은 레지스터 읽기 단계에서 사용된다. • ALU는 실행 단계에서 사..