Computer 38

5.9 Using a Finite-State Machine to Control a Simple cache

1. Simple Cache 설계 캐시의 주요 특성:  • 구조: Direct-Mapped Cache. • 쓰기 정책: Write-Back 및 Write-Allocate. • 블록 크기: 4워드 (16 바이트 = 128비트). • 캐시 크기: 16KiB, 총 1024블록. • 주소 크기: 32-bit. • 추가 필드: • Valid Bit: 블록의 유효 여부. • Dirty Bit: 블록이 수정되었는지 여부. 주소 필드 계산:  • Cache Index: 10-bit. •  1024블록, 각 블록을 식별하는 인덱스. • Block Offset: 4-bit. • 16Bytes. 블록 내부 데이터를 구분. • Tag: 32-10-4 = 18-bit. 프로세서와 캐시 간 신호:  • 1-bit Read/Wri..

5.8 A common Framework for Memory Hierarchy

1. Memory Hierarchy와 공통 질문 메모리 계층 구조 설계에서 블록 배치 및 검색 방식은 중요한 설계 요소이다. 이를 이해하기 위해 네 가지 질문을 다룬다: 1. Where can a block be placed? (블록 배치) 2. How is a block found? (블록 검색) 3. Which block should be replaced? (블록 교체) 4. What happens on a write? (쓰기 정책)  2. Question 1: Where can a block be placed? 블록 배치 방식:  • Direct Mapped: • 캐시의 특정 한 위치에만 배치 가능. • 블록 번호 캐시 블록 개수 사용. • Set-Associative: • 여러 개의 위치에 배치 ..

5.7 Virtual Memory

1. Virtual Memory의 개념 **Virtual Memory (가상 메모리)**는 **주 메모리(Main Memory)**가 **보조 저장장치(Secondary Storage)**를 위한 캐시 역할을 하도록 설계된 기술이다. • 가상 메모리를 통해 프로그램은 물리 메모리 크기에 구애받지 않고 실행 가능하다. • 메모리 관리를 단순화하며, 여러 프로그램이 동시에 메모리를 공유할 수 있도록 한다.  2. Virtual Memory의 주요 동기  1. 메모리 공유: • 여러 프로그램이 동일한 물리 메모리를 안전하고 효율적으로 공유. • 프로그램이 메모리를 읽고 쓰더라도, 다른 프로그램의 데이터에 영향을 미치지 않도록 보호.  2. 메모리 용량 확장: • 프로그램 크기가 주 메모리 크기를 초과하더라도 ..

5.5 Dependable Memory Hierachy

1. 메모리 계층의 신뢰성 (Dependability) 신뢰성이 높은 메모리 계층 구조는 데이터 유실 없이 지속적으로 작동해야 한다. • 빠르고 신뢰할 수 있는 메모리 계층을 설계하려면 **중복성(Redundancy)**을 활용하는 것이 핵심이다.  2. Defining Failure (실패 정의) 시스템은 두 가지 상태를 가진다: 1. Service Accomplishment:서비스가 정상적으로 제공됨. 2. Service Interruption:서비스가 사양(specification)과 다르게 작동하거나 중단됨. Failure and Restoration (실패와 복구):  • Failure: 시스템이 정상에서 비정상으로 전환되는 상태. • 영구적(permanent): 쉽게 진단 가능. • 간헐적(i..

5.4 Measuring and Improving Cache Performance

1. Cache 성능 측정과 향상 기술 캐시 성능을 측정하고 분석하는 방법에는 여러 가지가 있다. 이 섹션에서는 두 가지 주요 기술을 설명한다.1. Miss Rate 감소:캐시 미스율을 줄여 두 개의 서로 다른 메모리 블록이 동일한 캐시 위치를 차지하지 않도록 하는 기술이다.2. Miss Penalty 감소:다단계 캐싱(multilevel caching)을 사용해 미스 패널티를 줄이는 기술이다.이 기술은 1990년대 고가(10만 달러 이상) 컴퓨터에서 처음 도입되었으며, 현재는 모바일 기기에서도 사용된다.  2. CPU Time의 구성 CPU 시간이란 프로그램 실행에 필요한 CPU 실행 시간과 메모리 대기 시간의 합이다. 이를 계산하는 공식은 다음과 같다:CPU time = (CPU execution c..

3.7 TCP Congestion Control

3.7.1 Classic TCP Congestion ControlClassic TCP Congestion Control은 TCP가 네트워크 혼잡 상황에서 데이터를 어떻게 송신 속도를 조정하며 안정적인 전송을 보장하는지 설명하는 핵심적인 메커니즘이다.TCP는 네트워크 혼잡이 감지되었을 때 송신 속도를 줄이고, 혼잡이 해소되었다고 판단되면 송신 속도를 점진적으로 증가시키는 과정을 통해 혼잡을 관리한다. TCP 송신 속도 제한 방법 TCP 송신자는 네트워크 혼잡을 방지하기 위해 송신 속도를 제한한다. 이를 위해 다음과 같은 핵심 변수들이 사용된다: • Congestion Window (cwnd): 송신자가 네트워크에 보내는 데이터의 양을 제어하는 주요 변수이다. cwnd의 값은 혼잡 상태에 따라 증가하거나 감..

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. Large and Fast: Exploiting Memory Hierarchy(5.1 Introduction)

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