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/Write 신호.
• 1-bit Valid 신호: 캐시 작업 여부.
• 32-bit 주소, 32-bit 데이터(프로세서 ↔ 캐시).
• 1-bit Ready 신호: 캐시 작업 완료 여부.
캐시와 메모리 간 신호:
• 128-bit 데이터(메모리 ↔ 캐시).
• 32-bit 주소.
• 1-bit Ready 신호.
2. Finite-State Machine (FSM)와 제어
FSM은 복잡한 작업(여러 클록 사이클 요구)을 순서대로 처리하기 위해 사용된다.
FSM 구성 요소:
1. State Register: 현재 상태 저장.
2. Combinational Logic: 입력(Current State + Signals)에 따라 다음 상태와 출력을 결정.
FSM 설계 방식:
• Moore Machine:
• 출력은 현재 상태에만 의존.
• 장점: 빠르고 구현이 간단.
• Mealy Machine:
• 출력은 현재 상태와 입력에 모두 의존.
• 장점: 적은 상태 수로 설계 가능.
FSM 구현 구조 (그림 5.37):
• 상태 레지스터는 현재 상태를 저장.
• 결합 논리(Combinational Logic)는 다음 상태와 출력 신호를 결정.
• 제어 신호는 데이터 경로의 작업을 결정.
3. FSM for Simple Cache Controller
FSM은 간단한 캐시 컨트롤러의 동작을 제어하며, 4개의 상태로 구성된다.
상태 정의 (그림 5.38):
1. Idle:
• CPU 요청 대기 상태.
• 유효한 Read/Write 요청이 들어오면 Compare Tag 상태로 전환.
2. Compare Tag:
• Hit: 데이터 읽기/쓰기 완료 후 Idle로 복귀.
• 쓰기 요청인 경우 Dirty Bit 설정.
• Miss:
• Clean 블록: 바로 Allocate 상태로 전환.
• Dirty 블록: 먼저 Write-Back 상태로 전환.
3. Write-Back:
• Dirty 블록을 메모리에 기록.
• 완료 후 Allocate 상태로 전환.
4. Allocate:
• 요청된 데이터를 메모리에서 캐시로 로드.
• 완료 후 Compare Tag로 복귀.
4. 동작 과정
Miss 처리 과정:
1. Compare Tag 상태에서 Cache Miss 발생.
2. Dirty Bit 확인:
• Dirty 블록이면 Write-Back으로 전환하여 메모리에 기록.
• Clean 블록이면 바로 Allocate로 전환.
3. Allocate 상태에서 새 블록을 메모리에서 읽어 캐시에 저장.
4. 데이터 준비 후 Compare Tag로 복귀하여 작업 완료.
Write-Back과 Write-Allocate:
• Write-Back 방식: Dirty Bit이 설정된 블록만 하위 메모리에 기록하여 쓰기 비용 절감.
• Write-Allocate 방식: Miss 시 새 데이터가 캐시에 로드됨.
5. 성능 개선 옵션
FSM 모델은 단순하지만, 성능을 개선할 수 있는 방법도 있다:
1. 더 많은 상태 추가:
• Compare Tag 상태를 분리하여 비교와 읽기/쓰기를 병렬로 처리.
2. Write Buffer 사용:
• Dirty 블록을 버퍼에 저장하여 프로세서가 데이터를 기다리지 않도록 함.
'Book > COMPUTER ORGANIZATION AND DESIGN RISC-V' 카테고리의 다른 글
5.11 Parallelism and Memory Hierarchy:Redundant Arrays of Inexpensive Disks (0) | 2024.12.02 |
---|---|
5.10 Parallelism an Memory Hierarchy:Cache Coherence (0) | 2024.12.02 |
5.8 A common Framework for Memory Hierarchy (0) | 2024.12.02 |
5.7 Virtual Memory (2) | 2024.12.02 |
5.6 Virtual Machines (0) | 2024.12.02 |