-
Notifications
You must be signed in to change notification settings - Fork 0
학습 기록 | w4 정민
jeongmin edited this page Feb 26, 2025
·
3 revisions
1. 일반적으로 CPU와 메모리의 데이터 전송률은 {1️⃣ 높지만/낮지만} 입출력장치의 데이터 전송률은 {2️⃣ 높습니다/낮습니다}.
1️⃣, 2️⃣ 에 들어갈 말이 무엇인지 골라주세요. 그리고 이를 완화하기 위해 장치 컨트롤러에서 하는 역할에 대해 작성해주세요.
2. 입출력장치가 CPU, 메모리보다 다루기 까다로운 2가지 이유중 1번째는 1번 문제에서 언급된 데이터 전송률의 차이입니다. 다른 1가지 이유는 무엇인가요?
3. PIC(Programmable Interrupt Controller) 하드웨어의 역할은 무엇인가요?
4. DMA 컨트롤러의 데이터를 장치 컨트롤러로 옮기기 위해 {1️⃣} 버스를 자주 사용하여 CPU가 {1️⃣} 버스를 이용할 수 없습니다.
따라서 DMA 컨트롤러와 장치 컨트롤러를 {2️⃣} 버스라는 별도의 버스에 연결하여 해결할 수 있습니다.
1️⃣, 2️⃣ 에 들어갈 말이 무엇인가요?답안
1. 1️⃣: 높지만, 2️⃣: 낮습니다.
데이터 버퍼링 : 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법
2. 입출력장치의 종류가 너무 많아 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기 어려움
3. 여러 장치 컨트롤러에 연결되어 장치 컨트롤러에서 보낸 하드웨어 인터럽트 요청들의 우선순위를 판별한 뒤 CPU에 지금 처리해야 할 하드웨어 인터럽트는 무엇인지 알려주는 장치
3. 시스템 / 입출력
- cache와 memory 공간 1:1 대응 -> 메모리 주소의 하위 비트를 사용
- (block number) modulo (Number of blocks in the cache)
- 따라서 필연적으로 cache는 2의 거듭제곱의 block 수를 가져야 함
- memory 주소에 따라 cache를 넣을 수 있는 공간을 제한
- 특정 memory 주소는 특정 cache의 block에만 들어갈 수 있음
- 단점
- 빈 공간이 존재 -> 만약 001로 끝나는 메모리만 필요할 경우 계속 같은 공간 사용
- 데이터가 어디서 가져온 정보인지(주소의 상위 비트- tag) 들고 있어야 함
- 쓰레기 정보(초기화 된 상태)인지, 어떤 값에서 가져온 데이터인지 (valid)확인해야 함
- Tag: 주소의 상위 비트
- Valid bit: 의미 없는 데이터와 tag를 구별하기 위해 추가됨
- cache index: slot(block) 하나 선택
- 캐시가 64KB이고 캐시 block size가 64bytes인 경우, 캐시는 1024개 slot을 가짐
- byte offset: 하나의 word는 4byte로 이루어짐, word 안에 몇 번째 byte인지 명시

- block이 cache의 아무 장소에 들어갈 수 있는 방식
- 즉, 메모리의 block이 캐시에 들어가는 것에 대한 제한이 없음
- 단점
- 모든 entry를 검사해야 함
- 어떤 block이 cache의 어느 위치에 있는지 모름
- 하드웨어 크기의 증가
- cache entry에 comparator를 넣어서 병렬적으로 비교해야 하기 때문에 크기가 증가함
- 모든 entry를 검사함과 동시에 tag, valid를 비교하는 comparator가 들어가야 함 -> 적은 수의 block을 가지고 있을 때만 효율
- 모든 entry를 검사해야 함
- Direct와 Fully Associative의 중간
- cache를 n개의 block으로 구성된 set으로 나누어 n-way set-associative cache로 구성
- cache의 특정한 set에 mapping되고 해당 block은 set 안의 아무 위치나 들어갈 수 있음