기출문제 23년도 10월 4회차 96번 해설부분으로는 이해가 곤란합니다. 자세한 해설부탁합니다.

0

댓글

댓글 1개
날짜 투표수
  • 안녕하세요. 질문에 감사드립니다.

    [질문]  기출문제 23년도 10월 4회차 96번 해설부분으로는 이해가 곤란합니다. 자세한 해설부탁합니다.

    96. 명령문 수행 파이프라인에서 데이터 종속성(Data Dependency)은 성능을 저해한다. 
    이를 해결하기 위해 레지스터 재명명(Register Renaming)방법을 사용하는 종속성끼리 올바르게 나열된 것은?
    ① 쓰기 후 읽기(RAW) 종속성과 읽기 후 쓰기(WAR) 종속성
    ② 쓰기 후 읽기(RAW) 종속성과 쓰기 후 쓰기(WAW) 종속성
    ③ 읽기 후 쓰기(WAR) 종속성과 쓰기 후 쓰기(WAW) 종속성
    ④ 읽기 후 쓰기(WAR) 종속성과 읽기 후 읽기(RAR) 종속성

     

    [답변]

    정답 수정 : ① -→ ③

    관련 영상을 수정하도록 하겠습니다.

    레지스터 재명명 방법을 사용하여 해결할 수 있는 데이터 종속성은 “읽기 후 쓰기(WAR) 종속성과 쓰기 후 쓰기(WAW) 종속성”으로 정답은 ③입니다.

     

    우선 이문제는 난이도가 높은 문제로 일반적 정보통신기사 시험문제 수준을 벗어나는 문제입니다.

     

    ** 정답 수정 근거 **

    문제해석을 레지스터 재명명(Register Renaming)방법을 사용하여 데이터 종속성(Data Dependency)을 해결하는 종류로 문제를 해석함

    1. 쓰기 후 읽기(RAW, Read After Write) 종속성 : X, 레지스터 재명명으로는 해결할 수 없음

    2. 읽기 후 쓰기(WAR, Write After Read) 종속성 : O, 레지스터 재명명으로 해결

    3. 쓰기 후 쓰기(WAW, Write After Write) 종속성 : O, 레지스터 재명명으로 해결

    4. 읽기 후 읽기(RAR, Read After Read) 종속성 : 종속성과 관련 없음

     

    [해설#1] 

    레지스터 재명명(Register Renaming)은 명령어 파이프라인에서 데이터 종속성으로 인한 성능 저하를 해결하기 위해 사용되는 기술이며,  이 기술은 명령어 간의 의존성을 제거하거나 줄여 병렬 처리를 가능하게 합니다.

     레지스터 재명명은 다음과 같은 데이터 종속성 문제를 해결합니다:

    1. 쓰기 후 읽기(RAW, Read After Write) 종속성 : X, 레지스터 재명명으로는 해결할 수 없음

        - 이는 한 명령어가 레지스터에 쓰기를 완료하기 전에 다른 명령어가 그 레지스터를 읽으려 할 때 발생하며. 이는 진정한 데이터 종속성으로, “레지스터 재명명으로는 해결할 수 없지만”, 올바른 실행 순서를 보장하기 위해 파이프라인에서 관리됨

        - 설명 예       

     

    2. 읽기 후 쓰기(WAR, Write After Read) 종속성 : O, 레지스터 재명명으로 해결

        -  이는 한 명령어가 레지스터를 읽기 전에 다른 명령어가 그 레지스터에 쓰기를 시도할 때 발생하며, “레지스터 재명명은 이 문제를 해결할 수 있습니다”. 재명명을 통해, 읽기 명령어가 원래 레지스터를 사용하게 하고, 쓰기 명령어는 재명명된 새로운 레지스터를 사용하게 함으로써 WAR 종속성을 제거됨

        - 설명 예

           

     

    3. 쓰기 후 쓰기(WAW, Write After Write) 종속성 : O, 레지스터 재명명으로 해결

        - 이는 두 명령어가 같은 레지스터에 쓰기를 시도할 때 발생합니다. 레지스터 재명명은 후속 쓰기 명령어에게 “새로운 레지스터를 할당함으로써 이 문제를 해결함”

        - 설명 예

       

     

    결론적으로  레지스터 재명명 방법을 사용하여 해결할 수 있는 데이터 종속성은 “읽기 후 쓰기(WAR) 종속성과 쓰기 후 쓰기(WAW) 종속성”으로 정답은 ③입니다.

     

    [ 해설 #2 ]

    1.  “READ”와 “WRITE” 의미를 정리

     1) READ : 일반적 모니터링 처럼 값의 변화가 없음

    READ 는 임의의 어떤 DATA에 대해 읽을수만 있으며 수정/변경이 안되는 명령어입니다.

    예를 들어 어떤 전력제어설비, 조명제어설비, 자동제어설비등의 특정 장비의 상태값을 모니터링만 하지 제어/수정/변경이 안됩니다.

     2) WRITE : 제어를 통한 장비 절체/값을 변경

    WRITE 는 임의의 어떤 DATA에 대해 제어/수정/변경이 가능한 명령어입니다.

    예를 들어 어떤 전력제어설비, 조명제어설비, 자동제어설비등의 특정 장비의 상태값을 내가 원하는 값으로 OFF -→ ON 처럼 특정 장비의 상태를 제어/수정/변경이 가능합니다.

    2.  레지스터 재명명 설명

    레지스터 R1을 P1, P2로 재명명하여 문제점을 해결합니다.

    감사합니다.

     

     

    0

댓글을 남기려면 로그인하세요.

 

원하는 것을 찾지 못하셨나요?

질문하기