검증 방법론 개선

여러 세대의 CPU에서 검증 발생하는 버그를 분석한 결과 “버그는 편대에서 날아다닌다”는 결론에 도달했습니다. 

검증

즉, 디자인의 주어진 영역에서 버그가 발견되면 디자인의 동일한 영역에서 유사한 조건의 다른 버그가 있을 확률이 상당히 높습니다.

CPU 버그 를 찾는 것은 항상 만족스럽지만 그 자체로 끝이 되어서는 안 됩니다. 버그가 단독으로 날아가는 것이 아니라 그룹 또는

비행 중대에서 날아간다는 점을 고려하면 하나의 버그를 찾는 것이 프로세서 검증 팀이 같은 영역에서 더 많은 버그를 검색할 힌트가 될 것입니다.

다음은 시나리오입니다. 무작위 테스트에서 수천 시간의 테스트 끝에 버그를 발견했습니다. 

우리는 스스로에게 물어볼 수 있습니다. 어떻게 이 버그를 찾았습니까? 답은 이전에 경험하지 못한 이벤트의 조합일 가능성이 높습니다. 

또 다른 질문은 다음과 같습니다. 무작위 테스트에서 이 버그를 찾은 이유는 무엇입니까? 테스트의 매개변수 변경, RTL 수정 또는

시뮬레이터 수정과 같은 외부 수정으로 인한 것일 가능성이 큽니다.

이 새롭고 희귀한 버그를 발견함으로써 우리는 이제 디자인의 새로운 영역을 테스트할 수 있는 더 성능이 뛰어난 테스트벤치가
있다는 것을 알게 되었습니다. 그러나 테스트벤치가 개선되기 전에는 디자인의 해당 영역이 강조되지 않았다는 것도 알게 되었습니다.

버그가 비행 중대에서 날아간다고 생각하면 더 많은 버그를 찾기 위해 더 탐색해야 하는 디자인의 새로운 영역이 있음을 의미합니다. 검증 방법론을 어떻게 개선할 것인가?

스마트 무작위 검증 테스트를 사용하면 검증 이 향상됩니다.

테스트 벤치를 개선하고 이러한 버그를 해결하기 위해 검사기와 주장을 추가할 수 있으며 테스트를 추가할 수 있습니다. 

테스트에 집중합시다.

이러한 버그가 발생할 것이라고 확신할 수 있도록 범위를 확대하기 위해 스마트 무작위 테스트를 사용합니다. 

직접 테스트 방식으로 이 버그를 재현할 때 정확히 동일한 버그만 발생합니다. 하지만 벌레가 떼를 지어 날아다니고,
같은 지역에 비슷한 조건의 다른 벌레가 있을 확률이 높다고 했다. 아이디어는 우리의 범위를 확대하는 것입니다.

 무작위 테스트는 이 경우에 유용하지 않을 것입니다. 왜냐하면 우리는 비행 중대 패턴에 따라 목표로 삼고 싶은 아이디어가 있기 때문입니다.

특정 RISC-V 명령어에서 버그가 발견되었다고 가정해 봅시다. 이 명령어를 테스트할 확률을 높여 테스트를 개선할 수 있습니까? 

언뜻보기에는 통계적으로 동일한 버그를 노출하는 더 많은 실패가 발생하기 때문일 수 있습니다. 그러나 대부분의 버그는 지연된
파이프라인, 전체 FIFO 또는 기타 마이크로아키텍처 구현 세부 정보와 같은 드문 이벤

먹튀검증사이트

기사 더 보기