위험(로직)
Hazard (logic)디지털 논리학에서 위험은 시스템의 결핍이나 동기식[citation needed] 및 비동기식 회로 모두의 외부 영향에 의해 야기되는 바람직하지 않은 영향이다.[1]: 43 논리 위험은 논리 요소(NOT, AND, OR 게이트 등)에 의해 야기되는 어떤 형태의 지연으로 인해 입력 변수의 변화가 출력을 올바르게 변경하지 못하는 문제의 징후다.이것은 논리가 그 기능을 제대로 수행하지 못하는 결과를 초래한다.세 가지 가장 일반적인 종류의 위해성을 보통 정적, 동적 및 기능 위험이라고 한다.
로직 회로가 결국 원하는 기능에 정착할 것이기 때문에 위험은 일시적인 문제다.따라서 동기식 설계에서는 회로의 출력을 다른 클럭 영역에서 사용 중이거나 시스템 밖으로 라우팅되기 전에 등록하여 위험을 유발하지 않도록 하는 것이 표준 관행이다.그러나 그렇지 않은 경우 다른 연결된 시스템에 영향을 미칠 수 있으므로 위험을 반드시 제거해야 한다.
정적 위험
정적 위험은 신호가 일정하게 유지될 것으로 예상될 때 연속적으로 두 번 신호 상태를 변경하는 것이다.[1]: 48 하나의 입력 신호가 바뀌면 출력이 순간적으로 변하다가 정확한 값으로 안정화된다.정적 위험에는 두 가지 유형이 있다.
- 정적-1 위험: 현재 출력이 1이며, 입력 변경 후 출력이 0.1로 순간적으로 변경되어 1에 안착한다.
- 정적-0 위험: 현재 출력이 0이며, 입력이 변경된 후 출력이 일시적으로 1.0으로 변경되어 0으로 설정됨
Sum Of Products 표현에 기초하여 적절하게 형성된 2-수준 AND-OR 논리에서는 정적-0 위험은 없을 것이다.반대로, 총합 산출물 표현식의 OR-AND 구현에는 정적-1 위험이 없을 것이다.
정적 위험을 제거하기 위해 가장 일반적으로 사용되는 방법은 중복 논리(논리표현의 일치 용어)를 추가하는 것이다.
정적 위험의 예
물리적 논리 요소가 지연되는 불완전한 회로를 고려하십시오.AND 게이트 등
단순 회로는 다음과 같은 기능을 수행한다.
시동 다이어그램을 보면 지연이 발생하지 않으면 회로가 정상적으로 작동한다는 것이 분명하다.하지만, 정확히 똑같은 두 개의 관문은 결코 만들어지지 않는다.이러한 불완전성 때문에 첫 번째 AND 게이트의 지연은 상대 게이트와 약간 다를 것이다.따라서 입력이 111에서 011로 변경될 때, 즉 A가 상태를 변경할 때 오류가 발생한다.
이제 우리는 위험이 어떻게 발생하는지 대략적으로 알 수 있다. 보다 명확한 그림과 이 문제를 해결하는 방법에 대한 해결책을 위해 우리는 카노우 지도를 살펴보겠다.두 개의 관문은 고체 링으로 표시되며, 위험은 점선 링 아래에서 볼 수 있다.허프먼에[2] 의해 증명된 정리는 우리에게 중복 루프 'BC'를 추가함으로써 위험을 제거할 것이라고 말해준다.
그래서 우리의 본연의 기능은 다음과 같다.
이제 우리는 불완전한 논리 요소가 있더라도 A가 상태를 바꿀 때 우리의 예는 위험의 징후를 보여주지 않을 것임을 알 수 있다.이 이론은 어떤 논리 체계에도 적용될 수 있다.컴퓨터 프로그램은 현재 이 일의 대부분을 다루고 있지만, 간단한 예로는 손으로 디버깅하는 것이 더 빠르다.입력 변수(예: 6 이상)가 많으면 카노 지도에서 오류를 '보기가' 상당히 어려워질 것이다.
동적 위험
동적 위험은 신호가 한 번만 상태를 변경할 것으로 예상될 때 연속적으로 여러 번 발생하는 신호 상태의 일련의 변화를 말한다.[1]: 48 동적 위험은 단일 입력 변경의 결과로 출력이 두 번 이상 변화할 가능성을 의미한다.
동적 위험은 (입력으로부터) 출력에 대한 다른 경로가 있는 더 큰 논리 회로에서 종종 발생한다.각 경로의 지연이 다른 경우, 필요한/예상된 출력과 다른 출력 값을 변경할 가능성이 있다는 것이 빠르게 명확해진다.
예를 들어, 논리 회로는 출력 상태를 1에서 0으로 변경하지만 대신 1에서 0으로 변경하고 마지막으로 올바른 값 0으로 유지한다.이것은 동적인 위험이다.
일반적으로 동적 위험은 해결하기 더 복잡하지만, 모든 정적 위험이 회로에서 제거된 경우 동적 위험은 발생할 수 없다는 점에 유의하십시오.
기능 위험
정적 및 동적 위험과 대조적으로 기능 위험은 둘 이상의 입력에 적용된 변경에 의해 야기되는 위험이다.그들을 제거할 구체적인 논리적 해결책은 없다.정말 신뢰할 수 있는 방법 중 하나는 입력이 동시에 변경되는 것을 방지하는 것인데, 경우에 따라서는 해당되지 않는다.그러므로 회로는 각 경로에서 동일한 지연을 갖도록 신중하게 설계되어야 한다.[3]
다른이들
- 결합 기능 위험
- 조합논리에서 출력논리함수를 연구하고 수정함으로써 더 높은 수준의 프로그래밍에서 탐지되고 억제될 수 있는 위험요소가 있다.[1]: 43
- 순차적 위험
- 루프 시스템에서 발견되는 일종의 바람직하지 않은 신호 변화다.[1]: 43
참고 항목
- 부유체 효과, 절연체-기기에 대한 위험 실리콘의 원인일 가능성이 있음
참조
- ^ a b c d e f Lopes, Jeremy (2018-11-26) [2017]. "Design of an Innovative GALS (Globally Asynchronous Locally Synchronous), Non-Volatile Integrated Circuit for Space Applications" (PDF). University of Montpellier.
{{cite web}}
: CS1 maint : url-status (링크) - ^ Huffman, D. A. (1957), "The Design and Use of Hazard-Free Switching Networks", Journal of the ACM, J. ACM 4, 47, 4: 47–62, doi:10.1145/320856.320866, S2CID 1765037
- ^ "Hazards". www.ee.surrey.ac.uk. Retrieved 2018-03-17.