목록전체 글 (168)
Kim Seon Deok
Hazard hazard란 다음 명령어가 다음 클럭 사이클에 실행될 수 없는 상황을 말한다. 해저드에는 세 가지 종류가 있다. Structure hazards - 주어진 클럭 사이클에 실행되도록 되어있는 명령어 조합을 하드웨어가 지원하지 못해서 계획된 명령어가 적절한 클럭 사이클에 실행될 수 없는 사건이다. >> 한 사람이 2가지 일을 동시에 할 수 있는가 - 같은 클럭 사이클에 실행하기를 원하는 명령어의 조합을 하드웨어가 지원할 수 없기 때문에 발생한다. solution : resource duplication, cache Data hazards - 명령어를 실행하는 데 필요한 데이터가 아직 준비되지 않아서 계획된 명령어가 적절한 클럭 사이클에 실행될 수 없는 사건이다. - 어떤 단계가 다른 단계가 끝..
RISC-V Pipeline processor 구현 "computer organization and design risc-v"를 참고하여 system call을 제외한 RISC-V 32 bit 모든 유형의 ISA에 대해 구현해 보았습니다. case1) System verilog로 구현 후 Verilator를 사용해 synthesize https://github.com/du6293/pipeline_processor_systemverilog GitHub - du6293/pipeline_processor_systemverilog: RISC-V pipeline processor with system verilog RISC-V pipeline processor with system verilog. Contribu..
single cycle의 critical path(Load명령어 가장 오래 걸림)로 인한 지연을 막기 위해 여러 클럭에 걸쳐 하나의 명령어를 수행하는 multiple cycle 방법으로 변화했다. 한 instruction을 여러 클럭에 나눠서 수행할 수 있도록 함으로써 명령어마다 필요로 하는 클럭의 개수를 다르게 할 수 있게 되었다. single cycle : 1clock & control unit 1개 >> control unit 조합회로로 구현 multiple cycle : 클럭마다 control 달라짐 >> 명령어를 입력으로 하여 state machine으로 control unit 구현 & 리소스 중복 가능 Single Cycle 구현에 비교했을 때 달라진 점 ALU 3개가 합쳐져 ALU 수 감소 ..
RISC-V single cycle processor 구현 "computer organization and design risc-v"를 참고하여 system call을 제외한 RISC-V 32 bit 모든 유형의 ISA에 대해 구현해 보았습니다. case1) System verilog로 구현 후 Verilator를 사용해 synthesize https://github.com/du6293/single_cycle_processor_systemverilog GitHub - du6293/single_cycle_processor_systemverilog: RISC-V single-cycle-processor with system verilog RISC-V single-cycle-processor with syst..
MIPS는 16비트의 ARM 과는 다르게 32비트를 사용한다.(레지스터 32개) MIPS displacement Addressing MIPS는 RICS 타입이기 때문에 메모리를 직접 액세스 하는 것은 load,store밖에 없다. 워드는 항상 4의 배수로 align되므로 데이터가 한꺼번에 오갈 수 있는 양은 32비트이다. 주소의 단위는 byte이다. MIPS에서 32비트 레지스터는 메모리와 데이터를 주고받아야 하기때문에, 메모리 또한 32비트의 폭을 가지고 있어야 한다. 예를 들어 3번지 메모리를 레지스터로 읽어온다면, 3번부터 시작해서 4바이트 즉, 3,4,5,6을 읽어와야 한다. 하지만 이렇게 되면 데이터가 연결된 위치의 자리가 바뀌게 되고 구현이 복잡해지기 때문에 성능이 느려지게 된다. 따라서 wo..