본문 바로가기
반응형

시스템 반도체/컴퓨터 구조 (RISC-V)24

컴퓨터 구조 Pipelining hazards ( stage수 차이, Structure hazards, Data hazard, Control hazard, Critical path, pipeline, 파이프라인, 구조적 해져드, 데이터 해져드, 컨트롤 해져드 ) single cycle은 딜레이가 길다. 그래서 산업에서는 쓰지 않는다. 그렇다면 어떻게 더 나은 결과를 도출할 수 있을까?? 2가지 정도 생각할 수 있다. 1. 반도체 기술이 발전하는 것이다. 트랜지스터의 사이즈를 줄이는 것이다. 즉, 공정 기술의 발전 2. 새로운 컴퓨터 구조를 고안해 내는 것이다. 이것이 바로 Pipelineing이다. 이번엔 Pipelining에 대해 알아보자 Pipelining Pipelining이란, 명령어를 하나하나씩 실행하는 게 아니라 병렬적으로 실행하는 것이다. 응답 시간에 대해선 single cycle과 다를 게 없지만 throughput에는 더 나은 성능을 낸다. 정확한 설명은 이전 포스팅을 참고하면 된다. https://wpaud16.tistory.com/214?ca.. 2022. 3. 16.
컴퓨터 구조 single cycle cpu, critical path 아래의 single cycle에서 wave form이 어떻게 나오는지 보자. single cycle은 한 번의 클럭에 하나의 명령어를 수행하는 것이다. 그래서 addi, lw, beq명령어를 수행한다고 가정하자. addi x3, x0, 12 lw x5, 4(x3) beq x3, x5, L1 첫 번째 클럭이 튀면, addi에서 PC는 F/F delay 후 0으로 세팅된다. 그리고 메모리에서 명령어를 불러온다. 이때도 delay가 생긴다. 그다음에 source 레지스터를 추출하거나 sing extension 하고 목적지 레지스터를 세팅한다. 이때도 delay가 생긴다. 그다음엔 ALU를 이용하여 연산하는데 역시 delay가 생긴다. 그리고 다음 클럭이 튈 때, 연산 값이 x3에 저장된다. 뒤에 동작도 비슷하.. 2022. 3. 9.
컴퓨터 구조 cpu 동작 ( Fetch, Decodeing, Excution, Data processing, Memory Access, Branch, cpu 동작 순서 ) CPU 동작 1. Fetch - PC (Program Counter)가 가리키는 메모리의 주소에 접근하여 해당 명령어의 Machine Code를 CPU Register로 읽어오는 동작이다. 2. Decoding - CPU Register로 가져온 Machine Code의 Opcode와 Function 정보를 이용하여 어떤 명령어인지 확인하는 동작으로 operands 레지스터 번호 혹은 imm을 가져온다. 3. Excution - 알아낸 동작에 맞게 ALU을 이용하여 연산을 수행하는 동작이다. 이 단계는 데이터 처리, 메모리 접근, Branch를 결정한다. 4. Memory - 메모리에 접근하여 Load/Store를 하는 동작이다. 5. WriteBack - 메모리로부터 Load/Store한 후에 해당 결.. 2022. 3. 8.
컴퓨터 구조 single cycle, pipeline 차이 ( cpu동작 순서, Respone time, Throughput, 5-stage 3-stage차이 ) 마이크로 아키텍처 ISA에는 3가지 정도의 동작 방법이 있다. 1. Single cycle : 한 번의 클럭에 하나의 명령어를 실행한다. 2. Multi- cycle 3. Pipeline : 모든 명령어의 과정을 병렬적으로 실행한다. 이번에는 single과 Pipeline을 알아볼까 한다. 들어가기 전에 어떻게 컴퓨터의 성능을 평가할 수 있을까? 1. Respone time, 각각의 Task가 시작에서부터 끝나는 시간을 평가한다 2. Throughput (슈퍼컴퓨터) 시간 안에 얼마나 많은 양을 처리할 수 있는지를 평가한다 예를 들어보자, single cycle 위 그림은 하나의 명령어가 동작하는 시간과 순서를 나타냈다. 동그라미는 30분 세모는 40분 네모는 20분 걸린다고 하면 하나의 동작이 끝나는 .. 2022. 3. 4.
컴퓨터 구조 slt, sltu, slti, sltiu, Endianness (RISC-V) RISC-V에서 조건에 따른 결괏값을 boolean으로 돌려주는 instructions들은 총 4가지가 있다. slt ( set less than ) sltu ( set less than unsigned ) slti ( set less than immediate ) sltiu ( set less than immediate unsigned ) slt & sltu R-type으로 의미는 ~보다 작으면 1, 아니라면 0으로 결괏값을 반환한다. slt t0, s0, s1 이렇게 돼 있는 명령어를 해석하면 if (s0 < s1) then t0 =1; else t0 = 0처럼 해석할 수 있다. R-type이니 extension도 필요 없다. 그대로 들어가서 s0와 ALU에서 연산 후에 결과가 나와 t0로 들어가는 .. 2022. 3. 2.