- 데이터에서 수와 논리적 데이터와 단어의 길이
수를 나누는 데이터는 단어 단위로 취급
논리적 데이터는 비트 하나마다 의미가 있고 비트 단위로 연산이 처리됨
- 논리 연산장치
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 연산 수행