성능과 실행시간 사이의 관계 성능은 실행시간의 역수로 정의한다. $$Perfomance\,\,e{x}/Performance\,\,e{y} = Execution\,\,time{y}/Execution\,\,time{x}=n$$ >#### 용어정리 주기 = Cycle T
add a, b, c -> a = b + csub a, b, c, -> a = b - cdestination operand를 가장 앞에 둔다.기능을 디자인할 때는 단순한 표준을 따른다.예를 들어 add명령어와 sub명령어를 비슷한 포맷으로 제작해야 이해하기 쉬워진다.
RISC-V환경에서 32-bit 명령어로 구성되었다고 가정하면서 머신 코드가 무엇인지 알아보자.R포맷 명령어는 계산을 수행하는 데 쓰인다.opcode명령어의 핵심 기능은 opcode(operation code)가 전달한다. 그러나 7비트 opcode만으로 명령을 모두

보충할 부분 있음
RISC-V환경에서 branch의 주소 관리가 어떻게 일어나는지 알아보자.
프로세스가 동기화되지 않아서 발생하는 문제를 Data race라고 한다.프로세스를 동기화하기 위해 쓰이는 메모리 관련 명령어이다.lr.w rd, (rs1)rs1에 해당하는 주소의 데이터를 rd로 불러오는 명령어이다.lw와 다른 점은 메모리 공간에서 불러오는 과정에서 다
곱셈 관련 명령어는 네 가지가 있다.mul : 하위 32비트를 곱한다.mulh : 상위 32비르를 곱한다.32비트 숫자 두 개를 곱하기 위해 mul과 mulh를 이용해서 비트를 하위/상위로 나누어 계산한다. 숫자가 작을 때는 mul 하나만 사용할 때도 많다.mulhu
FP 전용 명령어, 소수점 자리 맞춤 하는 방법을 알아보자
AND, NOT, OR등이 있다.AND는 곱하기 기호, OR은 덧셈 기호, NOT은 켤레 기호(가로작대기)Select 조건에 따라 입력 A와 B중 하나를 선택해서 반환하는 경우 Multiplexor(MUX)라고 한다.Register(FF)데이터를 저장하는 서킷이다.Cl

RISC-V에서 ALU(arithmetic logic unit) 기능을 구현하는 방법을 알아보자.

alu 제어 신호가 만들어지는 과정을 알아보자
branch의 동작 결과를 예측하는 방법과 exception handling에 대해 알아보자
Temporal locality(일시적 로컬리티)어떤 데이터가 한 번 접근되었다면 짧은 시간 내에 다시 접근될 가능성이 높다. 예시로는 반복문이 있다.Spatial locality(공간적 로컬리티)어떤 데이터가 한 번 접근되었다면, 근처의 데이터도 곧 접근될 가능성이

작업에서 동시에 수행할 수 있는 부분을 병렬적으로 수행함으로써 총 실행 시간을 줄이는 기법이다. 총 다섯 개의 스테이지가 있다.IF : 메모리 상의 명령어에 접근(instruction fetch)ID : 메모리 해석(instruction decode)EX : 명령어 수
미래의 요청에 대비하여 데이터를 미리 저장하는 방법으로 프로세서에게 데이터를 빨리 전달할 수 있다.주소에 따라 위치를 지정한다.데이터를 저장할 위치는 아래 연산에 따라 주소를 구한다.\*\*(block address) modulo (이 때 tag 와 valid bit
1.5 + 0.07 12 + 0.07 0.035 \* 200base CPI + (L1 miss rate \* L2 access cycle) + (L1 miss rate \* L2 miss rate \* main memory access cycle)L1이 miss고
프로세스가 생성될 때 OS는 하드디스크에 모든 페이지에 해당하는 공간을 만든다.또한 페이지 테이블에 virtual address->physical address 매핑 정보를 만든다.성능을 높이기 위해서 page fault의 비율을 최대한 줄여야 한다.이를 위해 full

제품의 서비스가 중단된 경우 복구해서 정상화하는 과정에 대해 알아보자.MTTF : mean time to failure, 고장나는 데 걸리는 평균 시간MTTR : mean time to repair, 고치는 데 걸리는 평균 시간MTBF : mean time betwee