목록Advanced computer architecture (13)
Kim Seon Deok
VLIW - Loop-Carried- Dependencies VLIW 아키텍쳐에서 loop unrolling은 main feature였다. 그리고 loop unrolling을 적용하다 보니 kernel of software pipelining이 필요해졌다. for(i = 0 ; i < N ; i++) { A[i+2] = A[i] + 1; B[i] = A[i+2] + 1; } LOOP:L.DF0,0(R2)//01 ADD.DF3,F0,F1//02 ADD.DF4,F3,F1//03 S.DF3,16(R2)//04 S.DF4,0(R3)//05 ADDIR2,R2,#8 ADDIR2,R2,#8 BNER2,R4,LOOP 위 statement에서 A[i]와 B[i]는 double-precisoin FP number의 vec..
dynamic micro architecture의 한계 클럭 당 더 많은 instruction을 dispatch 하지만 하드웨어 로직이 점점 복잡해 질수록 cost가 증가하고 느려지게 되며 더 많은 power를 소비하게 됨 VLIW : Very Long Instruction Word 소프트웨어는 high-level language로 되어있고 컴파일러에 의해 analyze된다. 컴파일러는 assembly code를 만들고 여기에 optimization technique를 적용한다. LIW/VLIW에서 instruction processing의 instruction fetch ~ retire까지 모든 단계가 컴파일러에 의해 핸들된다. 하드웨어 complexity와 power를 최소화하며 wide fetch와..
Register renaming speculative tomasulo알고리즘에서 ROB는 instruction commit을 순서대로 실행하고 speculative reigster 값은 commit 될 때까지 storage에 존재하게 된다. speculative register는 physical register에 저장된다. physical register의 갯수 >= architectural register 갯수 이다. 따라서 더 많은 data를 저장할 수 있기 때문에 같은 architectural register 값을 여러 physical reigster에 저장할 수 있다. 이를 register renaming이라 한다. (OoO 프로세스를 구현하려면 더 많은 갯수의 register가 필요하다. spe..
Out-of-Order architecture를 사용하는 이유? instruction level parallelism을 증가시키기 위해서이다. 프로세서에서 실행되는 instruction의 갯수를 증가시킴으로써 ILP를 exploting한다 -> parallelism을 사용해서 프로세서의 성능을 늘릴 수 있다. -> pipeline, OoO architecture를 사용해서 ILP를 늘릴 수 있다. Thread-level-parallelism 프로세서 내부에서 실행되는 스레드 갯수를 증가시킴으로써 프로세서의 성능을 증가시킴 tomasulo 알고리즘은 OoO architecture implementation의 baseline이다. tomasulo 알고리즘의 이점 프로세서 내에서 실행될 수 있는 명령어 갯수를..
Precise exceptions Out-of-order completion의 주요한 단점은 바로 precise exception을 implement하기가 어렵다는 것이다. ADD.S F1, F2, F1 LW R2, 0(R1) 두 instruction은 independent (각각 floating point inst, integer inst) ADD.S instruction은 floating point add를 수행 -> IF ~ WB 까지 9 cycle (EXE : 5 cycle) LW instruction은 integer add를 수행 -> IF ~ WB 까지 5 cycle (EXE : 1 cycle) case 1 ) precise exceptions LW instruction은 C6에 WB를 수행하..