branch-prediction

    0

    1답변

    내가 읽은 바를 근거로하면 비용은 0 사이클이 될 것 같습니다. 그것은 실제로 0 사이클입니까? 비용이 0 사이클이면 CPU 명령 캐시에서 가능한 플러시 대신 점프 명령 자체가 포함됩니까? 모든 CPU 아키텍처에 대한 답변을 고맙게 생각합니다.

    4

    2답변

    정상적인 날에 프로그래밍 할 때, 나는 모든 가지가 찍히지 않을 것입니다. int retval = do_somting(); if(!retval) { /* Less-than-likely event*/ } 이렇게하면 분기 예측이 최적화되어 CPU 예측기 비트가 "수행하지 않음"으로 설정됩니다. 그러나 for 루프 이후에 예측 변수 비트가 강제로 "take

    0

    1답변

    possible()/unlikely() 매크로가 작동하는 방식을 이해했으며 분기 예측에 대해서도 알고 있습니다. 불행히도, 높은 수준의 프로그래밍의 맥락에서 분기 예측을 배우지 못했습니다. 가능성있는/가능성이 낮은 매크로 내에서 평가하면 세분화 오류가 발생하며 그 결과가 분기 예측 내역 또는 현재 결과/파이프 라인에 어떤 영향을 주는지 알고 싶습니다. 예측

    1

    1답변

    이의이 같은 간단한 if를 가정하자 멀티 스레딩 : if (something) // do_something else // do_else 이 if-else 문이 다른 스레드에서 병렬로 실행되는 것을 가정하고, 다른 결과를 산출 각 스레드,하지만 자신의 삶을 통해 정수입니다. 예를 들어, 스레드 1에서 조건은 항상 스레드 2에서 true

    3

    2답변

    의도적으로 특정 방법으로 코드를 작성하여 분기 예측자가 대부분의 경우에 적용될 옵션을 선택하도록 할 수 있습니까? 예를 들어 오류는 리소스가로드되었는지 여부를 확인합니다. 이것이 가능한 경우 어떻게 이것을 당신의 이익에 사용할 수 있습니까? 당신은 GCC를 사용하는 경우

    5

    1답변

    최적화 및 분기 예측 자의 관점에서이 두 코드간에 차이가 있습니까? 첫째 : void think_and_do(){ if(expression){ //Set_A of instructions } else{ //Set_B of instructions } } int main(){ think_an

    1

    1답변

    질문은 매우 간단합니다. - 함수에 제공된 실제 매개 변수를 검사하면 성능이 저하됩니까? 수출 라이브러리 함수는 일반적으로 사용자 코드에 의해 전달 된 실제 매개 변수를 확인하는 경향이 : if (arg1 == NULL || arg2 == NULL) return -EINVAL; 이 검사는 성능 저하를 초래 하는가? 내게 잘 작동 사용자가되고 항

    1

    1답변

    분기없이 자동으로 오버플로를 처리하는 안전한 버퍼 유형을 만들려고합니다. 버퍼 크기는 2의 거듭 제곱이며 유효한 양수 (즉, 0을 포함하지 않음) 색인 만 가져야합니다. 또한 해당 인덱스에 저장된 요소가 검색 키와 동일한 경우 지정된 색인에서 제거되는 확인 된 제거를 허용합니다. 나는 기본적으로 전달 된 인덱스가 범위를 벗어마다 buffer[0] 유효한 버

    0

    1답변

    이 질문은 코드 최적화에 관한 것이 아니라 단락 논리 연산자와 정상 논리 연산자의 성능 차이에 대한 기술적 질문으로, 하드웨어 수준에서 수행되는 방법에 따라 내려갈 수 있습니다. . 기본적으로 논리적 인 AND 및 OR은 1 사이클을 소요하는 반면 단락 회로 평가는 분기를 사용하고 다양한 양의 사이클을 취할 수 있습니다. 이제 분기 예측자는이 평가를 효율적

    0

    1답변

    젊은 파이프 라인 명령어가 이미 브랜치 예측 메커니즘에 의해 처리되었지만 구현에 따라 해당 lhr (또는 ghr)이 여전히 긴 파이프 라인에서 실행 가능한 시나리오인지 궁금합니다. 파이프 라인 길이로 인해 이전 분기의 실제 결과로 업데이트되었습니다. 실용적인 시나리오인데 어떻게 작동합니까?