본문 바로가기

ੈ✩‧₊˚Computer Science/컴퓨터구조15

[컴퓨터구조] 캐시(Cache) cache : 자주 쓰이는 데이터를 저장하며, 매우 빠른 Access time 을 지원하는 컴퓨터 메모리이다. 기본적 캐시 구조 - direct mapped : cache와 main memory 간에 mapping 이 되어있는 것 , cache를 통해 main memory data를 가져와야 한다 ▶ 캐시에서의 위치 : main memory 주소 % 캐시 block의 개수 예시) main memory : 22번지 캐시 block : 8개 ☞ 캐시에서의 위치 : 6 (=22%8) ▶ 하지만 이 방법은 main memory의 여러 주소가 한 곳의 캐시에 들어가게 되는데, 캐시에서 그 값이 main memory 중 어디를 가르키는지 알려면 어떻게 해야할까? 답) 유효비트(valid bit)와 tag를 이용한다.. 2020. 11. 20.
[컴퓨터구조] 메모리 계층구조 기본 (Memory hierarchy general) 메모리가 왜 중요한가 ? 메모리는 컴퓨터 시스템 성능의 아주 큰 영향을 미친다. 대부분의 메모리 큰 메모리 작은 메모리 느리다, 싸다 ( Slow & Cheap ) 빠르다, 비싸다 ( Fast & Expensive) ☞ 하지만 우리는 용량도 크면서 싸고, 빠른 메모리를 원한다 !! ☞ 이를 위해, 메모리 계층구조(Memory hierarchy) 라는 것이 만들어짐 메모리 계층구조 - 계층구조는 메모리를 아래 단계에서 가져다 쓰면서 맨 위의 register가 용량이 magnetic tape인 것처럼 사용할 수 있다. - register에 cpu가 원하는 메모리가 없으면 cache에서 찾고 또 없으면 main memory에서 찾는다..(반복) 메모리 지역성 (locality) 시간적 지역성 (temporal.. 2020. 11. 20.
[컴퓨터구조]Data hazard (forwarding) Data forwarding 복습 ! Data Hazard 일 때, data가 register 혹은 memory에 write 될 때 까지 기다리지 않고 EX 단 / MEM 단에서 계산되면 바로 가져와서 사용하는 것임! Data forwarding이 필요한 경우 Data dependency 가 생길 때 ex1) sub $2, $1, $3 add $12, $2, $5 ☞ Data hazard ! ( sub의 목적지 register 을 이용하기 때문) or $13, $6, $2 ☞ Data hazard ! ( sub의 목적지 register 을 이용하기 때문) add $14, $2, $2 ☞sub가 WB일 때, ID단인데 같은 자리에 있어도 write가 read보다 더 빠르기 때문에 hazard 발생 안함 s.. 2020. 11. 17.
[컴퓨터구조] Pipelining Hazard (파이프라인 해저드) Hazard : 특정한 이유로 다음 clock cycle에 다음 명령어가 실행되지 않는 상황 3가지의 Hazard 원인 1. Structural Hazard 2. Data Hazard 3. Control Hazard ☞ 모든 Hazard는 waiting으로 해결된다. (stall) 1. Structural Hazard (구조적 해저드) : 자원은 하나인데 여러 명령이 동시에 수행되려고 할 때 발생 예시) memory가 하나인데, 한 명령어는 instruction fetch를 위해서, 다른 명령어는 data fetch를 위해서 memory에 접근할 때 해저드 발생 사진 설명 : instruction1 에서는 data fetch를 위해, instruction4에서는 instruction fetch를 위해 C.. 2020. 11. 13.
[컴퓨터구조] MultiCycle Datapath multicycle datapath 실행과정 1) instruction fetch 2) instruction을 해독하고 register을 fetch 한다. 3) 실행, 메모리주소 계산, branch 하기 (branch instruction 끝) 4) 메모리 access 혹은( r-type instruction 완료) 5) 업데이트 (lw 완료) 1. Instruction fetch IR sign-extension(imm16) > ALUOut mux에서 pc+4를 보낼지 ALUOut 값을 보낼지 결정 (branch는 여기서 끝) 4. R-type or memory access - lw, sw 를 위해 memory access를 한다. or R-type instruction을 완료한다. Load(I-form.. 2020. 11. 6.
[컴퓨터구조] single cycle 의 단점, multi cycle single cycle 구현의 단점 - 1 clock cycle 안에 일어나는 일이 너무 많이 주기가 길어진다. -명령어 마다 긴 clock cycle을 다 활용하지 못한다. ( lw 제외) -> 시간을 낭비하게 된다. - single cycle은 memory 가 2개(data, instruction) 로 분리되어 있다. : 한 clock cyle 안에 매번 명령어 fetch를 해야하고 동시에 lw,sw 명령어는 memory로 부터 데이터를 읽어야 하기 때문 (하나의 메모리에 대해서 두 개의 읽기/쓰기가 이루어 질 수 없었음) 이러한 단점으로 multi cycle 이라는 대안이 있음 multi cycle 구현의 장점 - 명령어 마다 실행시간이 다른 것을 반영할 수 있다. (lw, sw, beq, R-ty.. 2020. 11. 6.
반응형