인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

박준기님의 프로필 이미지

작성한 질문수

디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기

컴퓨터 구조의 메모리 계층 구조와 Verilog로 SRAM 모델링하기

CPU 파이프라인 동작 코드 분석 중 의문점 질문 드립니다.

해결된 질문

작성

·

81

0

image.png

안녕하세요. 파이프라인 동작 코드 분석 중 의문점이 생겨 질문 드립니다.

다음의 다이어그램에서 보면, RegDST에 대한 명령이 ID 스텝에서 디코딩 된 후, EX 스텝까지 전달이 되어서 rt/rd중 선택하는 MUX를 통해 결정비트로 동작하는 것처럼 보입니다.

하지만, 코드 상에서는

image.png

ID step에서 해당 동작이 구현된 것 같습니다. 이 후 D FF을 통해 EX스텝으로 해당 비트가 전달되는 것은 동일합니다.

혹시, EX가 아닌 ID 스텝에서 해당 기능을 구현하신 이유가 있을까요?

질문이 많은데 늘 친절하게 답변주셔서 감사합니다!

답변 2

0

회로설계 멘토 삼코치님의 프로필 이미지

네 안녕하세요, 답변 남겨드립니다.

말씀하신 내용대로 Block diagram과 코드가 1대1 매칭이 되고있지 않습니다.

 

다만 MUXING된 값을 DFF에 통과시키느냐, DFF 통과 후에 연산을 하느냐에 대한 2 clk 이후의 결과를 보면 동일하다는것을 알 수 있습니다. 그래서 결과값은 동일할 것입니다.

 

그런데 MUX 한 후에 신호를 DFF으로 보내게 되면 DFF 1개만 사용할 수 있지만, MUX 인풋 신호를 DFF로 보내면 2개를 사용해서 해서 리소스가 낭비됩니다.

결과값과 타이밍에 대해서 문제가 없다면 위 코드와 같이 구성하는 것도 문제가 없기 때문에 위와 같이 구성되었습니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 박준기님.

CPU 파이프라인 동작과 관련하여 질문하신 내용에 대해 답변 드리도록 하겠습니다. 파이프라인 디자인에서 각 스테이지에서 어떤 기능을 구현할지 결정하는 것은 시스템 설계의 중요한 부분입니다. RegDst 비트와 같은 컨트롤 신호의 경우, 종종 ID 스테이지에서 계산하고 EX 스테이지로 전달하는 형태를 취합니다. 이는 컨트롤 신호가 EX 스테이지에서 사용되어야 하기 때문인데요.

  1. ID 스테이지에서의 디코딩:

    • ID 스테이지는 명령어를 해석하고 필요한 컨트롤 신호들을 생성하는 역할을 합니다. RegDst와 같은 신호를 여기서 결정해서 전달해야, EX 스테이지에서 필요한 레지스터를 선택하도록 설정할 수 있습니다.
  2. EX 스테이지에서의 사용:

    • EX 스테이지는 연산이나 주소 계산을 수행하는 단계입니다. 따라서 RegDst 비트는 EX 스테이지의 MUX에 연결되어 올바른 레지스터 소스를 선택하는 데 사용됩니다.

RegDst와 같은 컨트롤 신호를 ID 단계에서 생성하고 EX로 전달하는 이유는, 가능한 초기에 컨트롤 신호를 생성하여 파이프라인의 후속 단계에서 신속하게 사용할 수 있도록 하기 위함입니다. 이렇게 해서 각 파이프라인 스테이지가 독립적으로 효율적으로 작동할 수 있습니다.

추가로 이 주제를 더 깊이 이해하고 싶다면 다음 게시물도 참고해 보세요:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.