본문 바로가기

2-2

(28)
[디지털 설계 및 실험] Verilog vol10. Timing and Delays Delay는 여러가지 종류가 있다. 💻 Distributed Delay 먼저, Distributed Delay는 element마다 딜레이를 주는 방식이다. 여기서 element는 gate를 의미한다. Delay값들은 회로의 element 각각에 할당되어지며, input이 달라지면, 결과값은 delay후 변화하게 된다. 세세하게 딜레이를 줄 수 있지만, 속도가 느리다는 단점이 존재한다. 💻 Lumped Delay Lumped Delay는 모듈마다 딜레이를 주는 방식이다. 앞서, Distributed Delay는 element마다 딜레이를 주었지만, 이것은 마지막 최종출력단 앞에 있는 gate에 누적되는 딜레이를 뭉탱이로 준다. 그림을 보면 바로 감이 올것이다. 속도가 빠르다는 장점이 존재한다. 💻 Pin-..
[컴퓨터 구조] Control Hazard Pipeline Hazard에는 3가지 종류가 있다고 했다. Structural Hazard, Data Hazard, 그리고, Cotrol Hazard 오늘은 Control Hazard에 대해서 알아보자. 💻 Control Hazard Control Hazard는 branch instruction 다음 instruction이 무엇이 올지 EX stage때까지 모를때 발생한다. beq가 branch 될수도 안 될수도 있다. 만약에, Branch가 된다면 우리가 Fetch 해온 Instruction 들이 모두 쓸모 없게 되버리는 것이다. 이것은 성능 측면에서 매우 손해이다. 이것에 대한 여러가지 해결방법이 있는데, 가장 쉬운 것은 branch의 조건을 만족시키는 지 안시키는지 알아낼 때까지 즉,ALU로 연산..
[컴퓨터 구조] Building Datapath(2) 저번 포스팅에서는 공통으로 쓰이는 Datapath와 명령어에 따라서 쓰이는 DataPath를 보았다. 이번에는, 그것들을 하나의 Datapath로 만들어보자. 💻 Single Datapath - without control 이전 포스팅에서 보여줬던 DataPath를 모두 합쳐 single DataPath로 만든 모습이다. MUX라는 DataPath는 멀티플렉서로, Input을 선택적으로 넣어주기 위해 달렸다. 이렇게 완성된 Single Datapath는 왠만한 instruction을 모두 수행할 수 있다. 💻 Single Datapath - with control control 신호를 추가해준 것이다. Instruction의 address 는 각각 자기 위치를 찾아서 레지스터파일, IMMGen 의 Inp..
[컴퓨터 구조] Building datapath(1) Chapter 4로 넘어오면서 디지털 설계 및 실험에서 배운 요소들을 써먹는 부분들이 많았다. 그런부분은 넘어가고 새로 배우는 내용들에 대해서 초점을 둬보자. datapath를 구성해보는데 흐름을 따라서 가보자. 💻 Datapath Datapath란 CPU에서 데이터와 주소를 처리하는 모든 요소들을 말한다. 레지스터, ALU,Multiplexer,메모리 등이 이에 해당한다. 이 Datapath들이 하나로 통합되어 우리가 명령어를 실행할 수 있게 되는 프로세서의 Datapath를 점점 완성해 나갈 것이다. 💻Feteching the instruction 제일 첫단계인 Instruction Fetch를 살펴보자. Instruction Fetch를 하는 요소들에 대해서 알아보자. PC : 이전에 배웠지만 실행..
[컴퓨터 구조] Associative Cache 예전에 Direct- mapped Cache에 대해서 설명하였다. 그러면서 잠깐 Set Associative Cache에 대해서 언급했는데 오늘은 Cache의 종류에 대해서 알아보자. 💻 Type of Cache 캐시의 종류는 Direct-mapped cache, Fully associative cache, Set associative cache 3가지로 분류 할 수 있다. Direct- mapped cache는 이전에 작성한 포스트를 참고하면 좋을 것 같다. Set associative cache는 일반 캐시처럼 Tag, Data ,valid 모두 다있다. 다른점은 index가 Set으로 묶여있다는 점이다. 그리고, 데이타는 index에 해당하는 Set 중 아무 곳이나 들어 갈 수 있다. 그 Set 안..
[컴퓨터 구조] Cache Performance 이번 포스팅에서는 Cache의 성능을 측정해보자. 💻Cache Performance 캐시의 성능을 측정할 때, Hit 일 때, Miss일 때로 크게 두 분류로 볼 수 있다. Hit 일 때는 Hit time이고, Miss 일때는 Miss penalty이다. 따라서, CPU time을 계산하는 과정은 위와 같이 표현되어진다. 여기서 total clock cycled = CPU cycles + Memory stall cycles로 표현되어 질 수 있다. CPU cycles는 CPU가 실행하는 시간이고 Memory stall cycles는 DATA에 접근하는 시간을 의미한다. 여기서, Memory stall cycle에 대해서 더 알아보도록 하자. CPU가 Cache에 요청을 하였는데 해당 데이터가 없을때, M..
[컴퓨터 구조] Cache Miss Handling 이번 포스팅에서는 캐시 에서 Miss 가 났을때 무슨일이 일어나는지 봐보자. 💻 Cache Miss Handling in processor 캐시 Miss가 일어나면 무슨일이 프로세서에서 일어나는지 보자. 먼저 앞서 말했지만, 캐시에는 여러종류가 있다. 그중 Multi-level Cache는 캐시를 여러개를 들여 멀티레벨로 사용하는 것이다. 위 그림을 보자. 하나의 Core안에는 L1i, L1d가 존재하고, L2 Cache가 존재한다. L1i,L1d는 level 1을 존재한다. 이는 L2보다 사이즈가 작다. 앞에서 말했었다. 사이즈를 보면 L1
[컴퓨터 구조] Direct- mapped Cache 캐시에는 여러가지 종류가 있다. 크게 보면 모두 다 Set- associative Cache로 볼 수 있는데, 이중 Set이 1-way 인 경우를 Direct-mapped Cache로 본다. 이번 포스팅에서는 Direct - mapped Cache에 대해서 알아보도록 하자. 💻 Direct - mapped Cache Direct - mapped Cache는 메모리 주소에 따라, 이미 캐시에 들어갈 위치가 정해져 있다. 위그림에서, 밑에 길다란 블록들의 집합이 메모리이고, 각각 화살표를 캐시로 가리키고 있다. 초록색 위치의 블록들을 모아보겠다. 00001, 01001, 10001,11001 공통점을 보면 주소의 뒤 3비트가 001이다. 파란색칸 주소들을 보면 맨뒤 3비트가 101로 끝난다. 이처럼 주소에 ..