정말 간절하게 원하면 전 우주가 나서서 다 같이 도와준다
사실 우주가 우리한테 무엇을 도와줄 수 있겠는가?
천체관측과 우주탐사를 통한 지구과학계에서 학문적 연구를 하는데 큰 도움이 되는 것도 우주가 우리한테 도움을 주는 것이라 생각할 수도 있겠지만, 과연 컴퓨터과학계에서 우주가 도움이 되는 경우를 생각해본 적이 있는가?
오늘은 위의 주제를 다뤄보고자 한다.
마리오64 스피드런 버그
2013년 , 마리오64 게임을 최단시간으로 클리어하는 '스피드런' 대결을 하는 도중, 똑딱시계 맵에서 마리오가 어느 불특정한 곳으로 순간이동하는 버그가 발생하는 일이 있었다. 순간적으로 일어난 버그였고, 게임을 진행하던 게이머도 버그가 일어난 것에 당황하였다.
처음에 영상을 확인하였을 때 버그가 일어난 것을 보고 단순한 맵의 오류라고 생각을 하였으나, 다시 이 버그를 구현하려고 에뮬레이터를 통해 프레임단위로도 확인을 해보면서 다양한 방법을 구현하였지만, 끝내 오류를 다시 구현할 수 없었다고 한다. 이 버그에 대한 원리에 대해 다양한 가설이 제시되었는데, 어떠한 가설들이 제시되었는지 알아보도록 하자.
만약 이것이 다시 구현될 수 있는 버그였다면, 버그를 통해 스피드런을 달성한 기록과 그렇지 않은 기록은 천차만별이 될 수 있기때문에, 많은 사람들이 구현을 해보려고 다양한 방법을 동원하였고, 실제로 마리오64 게임의 버그와 다양한 플레이를 연구하는 pannenkoek2012 라는 유튜버 또한 이 버그의 의문을 풀기 위해 1000달러(한화 약 100만원)의 현상금을 제시하였다.
가설 1. 콘솔형 게임기의 접촉불량
앞서 마리오 64의 게임기는 닌텐도 게임기로 플레이를 할 수 있는데, 게임을 하면서 장착되어 있는 마리오64 게임칩과 닌텐도 64 게임기와의 접촉불량으로 인한 오류로 위치의 바이트를 읽어낼 수 없어 버그가 일어났다는 가설이 제시되었다. 이 가설이 성립이 된다면. 접촉불량을 완벽히 구현해낼 수 없기에 다시 구현할 수 없는 버그가 되는 것이다.
위의 가설도 충분히 논리가 있다고 생각은 하지만, 접촉불량으로 어느 특정한 한 곳에서만 버그가 일어나기보다는 여러곳에서 다양한 버그가 일어났어야 했기에, 접촉불량이 아니라고 여러곳에서도 반박이 제시가 되었었다.
가설 2. 우주방사선으로 인한 현상
오늘 이 글의 주제이면서, 우주방사선으로 인한 게임데이터 변형 현상이라는 가설이 제시되었다. 우주방사선은 태양계 밖, 초신성 폭발에 의해 나오는 강력한 에너지를 지닌 우주방사선이 발생하게 되는데 이때, 지구자기장이 방사선의 강도를 낮추는 역할을 해주거나, 대기권으로 들어오는 1차 방사선은 대기권의 분자들과 대기를 이루고 있는 산소나 질소 등의 분자들과의 충돌로 인해 작은 입자로 구성되는 2차 방사선이 강도는 매우 약해지는 편이다. 이 방사선에서 나오는 전자파가 게임기의 바이트값을 조작하는 현상이 발생하여 버그가 일어났다는 것이다.
Bit-Flip 비트플립현상
이 현상을 비트플립(Bit-Flip) 현상이라고 부르고 있는데, 비트플립은 0과 1로 이루어진 컴퓨터의 비트가 0이 1이 되버리거나 1이 0이 되버리는 현상이다. 이 현상의 원인은 무엇일까?
비트플립의 원인은 위와같이 우주방사선에 의한 현상, 이 외에 물리적 또는 컴퓨터의 연산오류로 인해 발생할 수도 있는 원인등 다양한 원인이 제기되고 있으나, 현재로써는 우주방사선에 의한 비트플립 현상이 유력한 원인으로 뽑히고 있다.
비트플립으로 인한 사례는 마리오게임 말고도 몇몇가지가 더 있다.
사례
1. 2008년 콴타스항공의 비행기가 비행도중 비행고도값이 알 수 없는 이유로 변경되면서 비행기가 약 200m를 급강하하는 일이 발생하였다. 이로 인해 비행기는 비상착륙 하였고, 승객이 부상을 겪는 사고였다. 이 사고에서 고도데이터가 변화한 이유를 조사하였는데, 그 결과 대류권 지면을 비행하는 비행기가 우주방사선에 노출되면서 우주방사선에 의한 비트플립으로 인한 데이터 변화로 인한 사고로 밝혀지게 되었다.
여담으로 우주방사선으로 인해 승무원이 방사선에 많이 노출되고 피폭되고 있다는 자료도 찾아볼 수 있다.
2. 벨기에서 한 연방선거는 전자투표로 진행이 되었는데, 집계결과 한 후보의 득표수가 전체 투표자에 비해 '4096'표가 더 많이 집계되는 현상이 발생했다. 분석결과 이 또한 비트플립에 의한 집계오류로 밝혀졌다.
3. 2009~2011년식의 일본 토요타 자동차의 자동차가 급격하게 가속하는 현상인 급발진 현상이 다수 발생하였고 이로 인해 전량 리콜하는 사태가 벌어졌는데, 전수조사 결과 자동차 컴퓨터에 이용되는 반도체가 우주방사선에 유독 민감하다는 결과가 발표되었다.
이글을 마치며
우리가 이용하는 컴퓨터나 전가기기가 정확하다는 결론은 다시한번 생각해볼 필요가 있다는 것을 느끼게 해준 주제입니다. 최근에는 방사선차폐 기술이나 다양한 기술로 이러한 오류를 줄이고 있지만, 매우 적은 확률로 기계가 오류를 일으킬 수 있다는 점이 와닿았네요, (내가 짠 코드도 혹시 이거때문에..?)
긴 글 읽어주셔서 감사합니다!
'🖥️ Computer Science' 카테고리의 다른 글
인공지능이 불어올린 커다란 파도. ChatGPT. (0) | 2023.03.05 |
---|