호랑사과

디지털 공학 2주차 본문

수업정리/디지털 공학

디지털 공학 2주차

호랑사과 2015. 3. 10. 22:32

  현상을 수식화하는 것이 공학적 접근입니다. 이 수식화하는 과정을 모델링(Modeling)이라고 합니다. 디지털 시스템에서는 상용대수가 아닌 Boolean Algebra가 발전하였습니다. 이것을 바탕으로 해서 디지털 공학을 공부합니다. 디지털 공학의 최종적인 목표는 Digital circuit Design/Analysis입니다.

  이를 공부하기 위해서는 Abstraction이 필요합니다. 이것은 자세한 개념이나 원리까지 알 필요 없이 자기에게 필요한 것만 골라서 알아내어 복잡한 문제를 다루는 방법입니다. 또한 Discipline은 높은 레벨의 Abstraction에서 생산적으로 일을 하기 위해 의도적으로 제한을 하는 것입니다. 예를 들면 아날로그 회로에 비해 광범위하지 않지만 설계에 최적화되어있는 디지털 회로를 제한함으로써 더 나은 세밀한 시스템을 만들 수 있게 됩니다.

  10진수 자리 수는 Digit, 2진수 자리 수는 Binary Digit이라며 Bit라고 줄여서 말합니다. 0,1로 이루어진 Binary Digit로 상용대수의 체계를 다 표현할 줄 알아야합니다인지능력이 없는 회로에 적용 하는 것은 Yes 또는 No 밖에 쓸 수 없기에 0,1이 적합하다는 이유도 있습니다.


  회로를 설계하는 사람으로서 복잡한 문제를 해결하는데 필요한 3가지가 있습니다.

  Regularity는 핸드폰 충전 단자인 표준 5핀 같은 범용성을 이야기합니다.(interface) Hierarchy는 복잡한 시스템이 있으면 이를 우리가 다룰 수 있을 서브시스템이 나올 때까지 계속 나누는 방법입니다. 다시 말해 다루기 힘든 것을 다룰 수 있을 정도로 계속해서 나누는 것입니다. Modularity는 기능이 잘 정의된 모듈을 다른 모듈과 연결하기 쉽게 되어 있는 것을 이야기합니다.

  예를 들면 벽을 만드는데 벽돌이 필요하고 필요한 벽돌 개수와 벽돌 가격이 중요하지 벽돌을 무슨 재료로 만들어야할지 고민할 필요가 없습니다.(Abstraction) 벽돌이 크기도 서로 맞아야하고(Regularity) 방풍 등 기능이 있어야 합니다.(Modularity) 그 벽돌을 쌓는데 최소한 바람만 막게 쌓던가, 아예 많이 쌓던가를 고민을 해야 합니다.(Hierarchy)


 다음은 2진수의 부호표현에 대해서 이야기하겠습니다.  

  Unsigned numbers는 말 그대로 부호가 없는 수들을 말합니다음수를 표현하지 않기 때문에 양수 쪽에서 표현할 수 있는 범위가 좀 더 많습니다.

  Sign/Magnitude numbers는 부호를 표현하는 방법 중 하나인데 우리말로 부호절대값 형식을 말합니다. MSB(최상위비트)에 양수면 0, 음수면 1을 넣어서 표현합니다그러나 계산을 하면 다른 결과 값이 나오기 때문에 사용하지 않습니다예를 들면 5와 -5를 이진수로 0101, 1101으로 표현할 수 있는데 이 둘을 더하면 0000이 아닌 다른 값이 나옵니다또한 0이 +0(0000), -0(1000)이 생겨버리는 논리적 오류가 생깁니다컴퓨터 입장에서는 부호와 절대값을 따로 구분해서 처리를 해야하고 덧셈기와 뺄셈기를 따로 구현해야 하기 때문에 회로가 복잡해집니다1의 보수와 비교하자면 비슷한 오류가 생깁니다만 Sign/Magnitude numbers와는 표현방법이 다릅니다.

  먼저 뺄셈기를 사용하지 않고 덧셈기로만 구현하기 위해 Complement(보수)가 도입이 됩니다. 그것이 One’s Complement numbers, Two’s Complement numbers(1의 보수, 2의 보수)입니다. 앞서 올린 포스팅을 참고하시기 바랍니다. 이번에는 보수를 일반화해서 이야기 하겠습니다. R의 보수(기수 보수), R-1의 보수(감소 보수)가 있습니다. 예를 들면 이진수니까 R=2이면 우리가 아는 1의 보수, 2의 보수가 나옵니다





  보수는 Boolean Algebra에서 뺄셈과 나눗셈이 없기 때문에 이를 해결하기 위해 생겼습니다. 어느 보수를 사용하건 답은 같아야하지만 계산하는 방식이 다릅니다. 2의 보수를 사용한 경우 자리올림을 발생하면 무시를 합니다. 1의 보수를 사용할 때는 자리올림이 발생한 경우 최하위 비트에 더합니다.

  구별되는 정보의 양의 수가 M이면 자릿수 N은 입니다.

  2진수에서 8진수로 변환할 때는 3자리씩 끊어서 8진수로 계산을 하고 16진수로 변환할 때는 4자리씩 끊어서 16진수로 계산을 합니다.




 종합적으로 정리하면 위와 같습니다. 위 그림에 One’s Complement numbers가 나와 있지 않은데 범위만 Sign/Magnitude numbers와 같다고 생각하시면 됩니다.


출처 : Digital Design and Computer Architecture, C로 배우는 쉬운 자료구조

'수업정리 > 디지털 공학' 카테고리의 다른 글

디지털 공학 5주차  (0) 2015.04.01
디지털 공학 4주차  (0) 2015.03.31
디지털 공학 3주차  (0) 2015.03.21
보수에 대하여  (0) 2015.03.09
디지털 공학 1주차  (0) 2015.03.05