일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- gcc 컴파일
- DNN 가속기
- systolic array
- 클럭 게이팅
- 데이터 해저드
- DNN Accelerator
- 남산업힐
- Data HAzard
- pytest-pythonpath 설치 오류
- 딥러닝 가속기
- Pyverilog 설치
- Pyverilog 실행
- 대구 반도체 설계기업 특화
- CUDA
- makefile
- Design DNN Accelerator
- Makefile compile
- pygraphviz 설치 오류
- Pyvrilog tutorial
- 이진수 곱셈 알고리즘
- gpgpu-sim
- linux c++ 컴파일
- CLOCK GATING
- CDC
- linux c 컴파일
- linux makefile 작성
- AMBA
- Pyverilog 튜토리얼
- pyverilog 설치 오류
- 컨벌루션 연산
- Today
- Total
목록Processor (24)
오늘은 맑음
single precision : 32bit half precision : 16bit
Reservation stationdata hazard를 피할 수 있는 방법중에 scoreboarding과 reservation station이 있다.scoreboarding은 이전 포스팅에서 알아보았으므로 이번엔 reservation station에 대해서 알아보자. Reservation Station : reservation station은 CPU가 사용한 레지스터를 연산이 종료된 즉시 가져와 저장하는 버퍼다. 결과값을 register에 write하지 않고 reservation station에 저장함으로써 WAR, WAW hazard를 방지할 수 있다. 명령어가 발행되어 operand와 함께 실행되어 나온 결과는 reservation station에 저장된다. 이 후 같은 register에 대한 wr..
MSHRs(Miss Status Holding Registers)만약 cache에서 miss가 발생하면 어떤 과정을 수행할까? cache miss가 발생했다는 이야기는 CPU가 명령어를 수행하는데 필요한 데이터가 cache에 존재하지 않다는 의미입니다. 따라서 필요한 데이터를 다시 캐시로 가져오는 과정이 필요합니다. 이 과정에서 MSHRs라는 회로를 사용하게 됩니다.1. cache에서 miss가 발생하면 먼저 MSHRs을 점검2-1. cache miss가 발생한 명령어가 MSHRs에 존재하지 않다. 즉, 이 명령어에 대해 처음 miss가 발생 위와 같은 경우에는 MSHRs를 할당해 해당 명령어에 대한 cache miss를 처리하게 됩니다. 이 과정에서 상위 레벨의 cache 또는 메인메모리에 요청해 필요..
Data prefetch Data prefetch란 앞으로 연산에 필요한 data들을 미리 가져오는 것을 의미합니다. 미리 가져온다... 미리 가져오면 좋은점이 어떤 것이 있을까요? 바로 Memory latency를 감출 수 있습니다. 감추는 것은 어떤 것을 의미할까요? 이전 cache에 대해 포스팅한 글에서 말했듯이 CPU의 연산속도보다 메모리에 접근하는 속도가 느리기 때문에 이를 보완하기 위해 다층구조의 cache를 사용한다고 했습니다. 아무리 보완하더라도 CPU에서 연산에 필요한 요청이 들어오게 되면 다시 데이터를 가져오는 시간이 걸리겠죠?이를 Memory latency라고 하며 이를 감추는 방법을 Memory latency hiding기법이라고 합니다. 이제 Memory latency를 prefe..
저번 포스팅에서는 일반적인 in-order processor에서의 scoreboard에 대해서 알아보았습니다.이번에는 highly parallel architecture processor에서의 scoreboard에 대해 알아보겠습니다. 과연 두 개의 차이점이 무엇일까요?highly parallel architecture은 즉, thread가 매우 많은 multi-thread processor라고 할 수 있습니다. multi-thread processor의 경우 예를 들어보겠습니다. 1. 1개의 warp당 128개의 register를 갖고있습니다.2. 1개의 core당 64개의 warp을 갖고있습니다. 그렇다면 총 register의 개수는 총 8912개가 존재하며, in-order processor에서 사..
Register Scoreboarding 지난 포스팅에서는 data hazard에 대해서 알아보았습니다. 그 세 가지 data hazard를 막을 수 있는 scoreboarding에 대해서 알아보도록 하겠습니다.scoreboarding은 말 그대로 register에 점수를 기록한다고 생각하면 되겠습니다.scoreboard에는 각 register를 대표하는 single bit들이 준비되어 있습니다.만약 입력된 명령어 A의 결과가 write될 예정이라면, 해당 register의 bit를 set시킵니다.다른 명령어 B가 들어와 set된 register에 read/write를 할 예정이라면, 이 명령어는 stall됩니다.이전에 들어온 명령어가 write를 수행하고 나서야 set된 bit는 clear가 될 것이며..