컴퓨터구조 19

ch5.exercise

5.3번 문제들: 캐시 전체 비트 수 계산 및 성능 비교 문제 설명: 32KiB, 64KiB 캐시에 대해 태그, 유효 비트, 데이터 비트 총합을 계산하고, 블록 크기 변화에 따른 효과를 살펴본다. • 1 KiB = 1024바이트 • 32 KiB = 32 * 1024 = 32768 바이트 • 64 KiB = 64 * 1024 = 65536 바이트 • 워드(Word) = 4바이트 5.3.1 (32KiB 캐시, 2-word 블록) 조건: • 총 데이터 용량: 32KiB = 32768바이트 • 블록 크기: 2워드/블록, 1워드=4바이트 ⇒ 블록 크기 = 2 *4바이트 =8바이트 • 블록 수 = 총 용량 / 블록 크기 = 32768바이트 /8바이트 =4096블록 어드레스 비트 분해(32비트 주소): • 오프셋(O..

CH5. Self-Study

1. 연관성과 Three Cs 모델 직접 매핑 캐시(Direct-Mapped Cache): 히트와 미스 • 다음 접근 주소들: 18, 20, 22, 24, 26. • 히트/미스 분석: • 18 (이진수: 10010): 히트 — 캐시 인덱스 2에 존재. • 20 (이진수: 10100): 미스 — 캐시 인덱스 4에 저장됨. • 22 (이진수: 10110): 히트 — 캐시 인덱스 6에 존재. • 24 (이진수: 11000): 미스 — 캐시 인덱스 0에 저장됨. • 26 (이진수: 11010): 미스 — 블록 18과 충돌 미스 발생, 인덱스 2에서 교체됨. 결과: • 히트: 18, 22. • 미스: 20, 24, 26.  연관도가 미스에 미치는 영향  • 2-way 세트 연관 캐시를 사용한다면, 블록 26에서 ..

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..

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. 예외가 발생한 명령어의 주소를 저장예외가 발생한 시점에서 현재 실행 중인..