ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [컴퓨터 구조] Soft(Warm) reset(reboot) vs Hard(Cold) reset(reboot)
    공학/컴퓨터구조 2023. 8. 15. 01:31

    글의 참고

    - https://en.wikipedia.org/wiki/Reboot#Warm


    글의 전제

    - 밑줄로 작성된 글은 강조 표시를 의미한다.

    - 그림 출처는 항시 그림 아래에 표시했다.


    글의 내용

     - Hard Reset

    : 흔히 `Cold reboot` 이라고도 한다. 리셋을 인식하면, 그냥 전원을 차단해서 Off/On 한다. 이걸 사용하는 경우는 소프트웨어가 먹통이 되었을 때 이다. `Soft Reset`은 리셋 인터럽트를 받아, 소프트웨어적으로 깔끔히 정리를 하고 리부트한다. 그런데, 만약에 소프트웨어가 완전 패닉이여서 인터럽트를 인식하지 못하는 상황이라면? 혹은 바이러스에 감염되서 리셋 인터럽트를 인식하지 못하면? 이럴 때는 전원을 껏다 뽑아야 한다. `하드 리셋`은 전원을 아예 Off -> On 하기 때문에 그냥 껐다 켜진다.

     

    - Soft Reset

    : 흔히 `Warm reboot` 이라고도 한다. 전원을 차단하지 않고, 소프트웨어들이 사용하고 데이터를 깔끔히 디스크에 싱크하고 시스템을 다시 시작하는 리셋을 의미한다. `Soft`가 들어갔다고 해서 소프트웨어서 발생한 리셋이라고 생각하면 안된다. 하드웨어 핀에 의해서 리셋이 인식됬지만, 아름답게 소프트웨어를 마무리 한다고 해서 `Soft`가 들어간것이다. `Warm`은 전원을 차단하지 않았기 때문에, 보드가 뜨끈뜨근 하다는 의미에서 `Warm`이 됬다.

     

    " `소프트 리부트`를 사용하는 이유는 여러 가지가 있을 수 있다. 그러나, 한 가지 명확한 것은 이전 값을 유지한다는 점이 가장 중요하다. 즉, `소프트 리부트`는 RAM에 특정 영역을 건들지 않는다. 그래서 이전에 설정된 값이 그대로 존재하게 된다. 그럼, 이 내용은 다시 말해 특정 영역에 내가 뭔가를 쓰고 `소프트 리부트`를 하면 그대로 남아있다는 얘기가 된다. 이런 부분은 디버깅에 굉장히 도움이 될 것이다.

    A `soft reset` allows certain registers to `remain unchanged` while resetting others. This is different than a regular (hard) reset. One of the advantages of a soft reset is that it keeps the LBUSCFG register at its previously loaded value, meaning the local processor is still configured properly to work with the PCI-DP after a soft reset.
    ...

    - 참고 : https://community.infineon.com/t5/Knowledge-Base-Articles/Soft-Reset/ta-p/250091
     
     

    - Reset 버튼

    : 실제 실무에서 `리셋` 버튼에도 참 여러 가지 설정들이 가능하다. 예를 들어, 리셋 버튼을 실수로 눌러서 내가 작업해놓은 자료가 다 날라갈 수 도 있다. 그래서, `리셋` 버튼은 추가적으로 딜레이를 좀 넣는 경우가 많다. 그리고 리셋 버튼을 제품으로 나갈 경우, 사람들이 실수로 누를 확률이 높기 때문에, 대개 누르기 힘들게 만들어 놓는다(핀셋을 통해서만 누를 수 있게 굉장히 얇고 깊은 곳에 숨어있다).

     

    - Development vs Release

    : 개발시에는 디버깅을 위해서 Soft Reset을 이용하지만, 제품이 밖으로 나갈 경우에는 Hard Reset이 맞다는 생각이 든다. 왜냐면, 만약, 밖으로 나간 제품이 바이러스에 걸릴 경우, Soft Reset은 동작하지 않을 수 도 있다. 그러나, Hard Reset은 무조건 Reset이 동작하기 때문에 추가적인 피해는 막을 수 가 있다.

     

    : Soft Reset 시에는, `unchanged` 영역이 존재하기 때문에, 그 영역에 디버깅 정보나 실제 기능 구현에 필요한 데이터를 저장하는 경우가 있다. 그러나, 그것은 좋지 못한 방법이라고 생각이든다. 왜냐면, 위에서 말한 것처럼 실제 밖으로 제품이 나갈 때 Hard Reset으로 나갈 경우에는 그 영역이 사라질 우려가 있기 때문이다. 그런데, 개발 필요한 자료들을 `unchaged` 영역에 넣어두면 후에 `Soft Reset -> Hard Reset` 변경 시에, 문제가 발생할 수 있기 때문에 개인적으로 `unchaged` 영역은 개발 단계에서 디버깅 목적으로만 사용하는 것이 좋다고 생각이든다.

     

    : 그런데, PMIC는 조금 다를 수 있다. 결국 SoC를 Reset 시키는 주체가 PMIC인데, PMIC는 외부 전원 공급이 지속적으로 되면 계속적으로 살아있는 IC다. 그래서, PMIC에는 남은 레지스터 영역이 있다면 사용해도 되지 않을까라는 생각을 조심스럽게 해본다. 사실 반문은 가능하다. PMIC도 결국 외부에서 전원이 끊기면, 내가 저장한 정보들이 모두 사라지는 것 아닌가 할 수 있다. 그런데, PMIC는 `Hold-up TIme`이 그래도 있기 때문에, 전원이 단락이 인식되면 곧 바로 해당 영역의 데이터를 디스크로 복사하는 작업을 진행하는 것이 좋지 않을까 싶다. 

     

    '공학 > 컴퓨터구조' 카테고리의 다른 글

    [컴퓨터 구조] ARM - Power Control System Architecture(PCSA)  (0) 2023.09.20
    [컴퓨터구조] ARM - WFI & WFE  (0) 2023.09.04
    Boot ROM  (0) 2023.08.13
    [컴퓨터 구조] Cache  (0) 2023.08.12
    [컴퓨터 구조] MMIO  (0) 2023.08.11
Designed by Tistory.