1 minute read

논리 연산

- 데이터에서 수와 논리적 데이터와 단어의 길이

    수를 나누는 데이터는 단어 단위로 취급

    논리적 데이터는 비트 하나마다 의미가 있고 비트 단위로 연산이 처리됨

- 논리 연산장치

    AND, OR, XOR, NOT 게이트가 하나씩 들어가 있는 모듈

    입력 비트들은 모든 게이트를 하나씩 거치게 되고 두 개의 선택 신호들에 의해 선택된 연산의 출력만 4 X 1 멀티 플렉서의 출력으로 나게게 됨

    대응되는 비트들 간에 독립적으로 연산이 수행되므로 모듈간의 데이터 전송 통로 필요하지 않음

    CPU의 ALU에는 단어의 비트 하나당 하나의 논리 모듈이 들어감

- AND 연산

    같은 자리에 있는 두 비트가 모두 1일 때/1이 아닐때 1/0

- OR 연산

    같은 자리에 있는 두 비트가 하나라도 1일 때/1이 아닐 때 1/0

- XOR 연산

    같은 자리에 있는 두 비트가 같을 때/다를 때 0/1

- NOT 연산

    모든 비트를 반전시킬 때

- 선택적 세트 연산

    특정 비트들을 1로 세트해줄 때

    데이터가 저장된 레지스터와 세트될 비트들의 위치를 지정해주는 레지스터(선택된 범위가 모두 1) 간에 OR 연산 수행

- 선택적 보수 연산

    특정 범위의 비트들의 0을 1로, 1을 0으로 바꿀 때

    데이터가 저장된 레지스터와 세트될 비트들의 위치를 지정해주는 레지스터(선택된 범위가 모두 1) 간에 XOR 연산 수행

- 마스크 연산

    특정 범위의 비트들을 0으로 리셋시킬 때

    데이터가 저장된 레지스터와 세트될 비트들의 위치를 지정해주는 레지스터(선택된 범위가 모두 0) 간에 AND 연산 수행

- 삽입 연산

    특정 범위의 비트들을 원하는 비트로 바꿀 때

    데이터가 저장된 레지스터에 마스크 연산 후 새롭게 삽입 될 레지스터간에 OR 연산 수행

- 비교 연산

    A,B 레지스터의 내용을 비교하고 두 레지스터에 대응되는 비트들의 값이 같으면/다르면 A 레지스터의 해당 비트를 0/1

    두 레지스터들 간에 XOR 연산 수행