본문 바로가기

CS/컴퓨터구조(Mano)

[컴퓨터구조] ch.4 레지스터 전송과 마이크로 연산 (3) 논리 마이크로 연산

Mano의 컴퓨터시스템구조 제3판, 프로텍 미디어, 김종상 옮김 도서를 정리, 요약하는 글입니다.

 

1. 논리 마이크로 연산

- 저장된 비트열에 대한 이진 연산으로서 각 비트를 독립된 이진 변수로 간주하고 연산을 수행한다.

- 논리 마이크로 연산은 계산에서보다는 이진 데이터의 비트 조작이나 논리적인 결정을 내리는 데 자주 사용된다.

- AND 연산은 ∧, OR 연산은 ∨, 1의 보수는 문자 위의 bar로 표현한다.

 

2. 논리 마이크로 연산표

 

사진 출처 : https://upscfever.com/upsc-fever/en/gatecse/en-gatecse-chp153.html

 

- 두 개의 이진 변수 x, y로 수행될 수 있는 논리 연산은 모두 16가지이다.

- 위의 표는 F0 ~ F15까지 두 변수 x, y 사이에 가능한 부울 함수 각각에 대한 진리표이다.

 

 

사진 출처 : https://upscfever.com/upsc-fever/en/gatecse/en-gatecse-chp153.html

 

- 위의 표는 논리 마이크로 연산들은 두 레지스터 내용 사이의 연산을 의미한다.

 

사진 출처 : https://upscfever.com/upsc-fever/en/gatecse/en-gatecse-chp153.html

 

- 위의 논리회로는 16개의 마이크로 연산 중에서 4개의 연산인 AND, OR, XOR, Complement만을 사용한 한 단을 보여주고 있다.

- 4개의 게이트와 하나의 멀티플렉서로 구성되어 있고, 각 게이트가 정해진 논리 연산을 수행하고 이 결과들 중 하나를 멀티플렉서로 선택하여 최종 결과값을 결정한다. 

- n비트 회로를 구현하기 위해서는 이 그림과 같은 회로를 n개 반복하고, 선택 변수는 모든 단을 동시에 선택하게 하면 된다.

 

3. 응용

- 논리 마이크로 연산은 레지스터에 저장된 각 비트나 한 워드의 일부분을 처리하는 데 유용하다.

 

(1) selective set 연산

- 레지스터 B의 1에 대응되는 부분을 레지스터 A의 비트를 1로 세트, 0에 대응되는 부분은 그대로 두는 연산이다.

- OR 연산으로 구현할 수 있다. 

 

(2) selective 보수 연산

- 레지스터 B의 1에 대응되는 부분의 레지스터 A의 비트를 보수로 만들어준다.

- exclusive OR 연산으로 구현할 수 있다.

 

(3) selective clear 연산


- 레지스터 B의 1에 대응되는 A의 비트만 클리어시키는 연산으로 논리 마이크로 연산 A ← A ∧ B'이다.

 

(4) mask 연산

 

- B의 0에 대응되는 A의 비트만 클리어되는 연산으로 AND 마이크로 연산과 같다.

 

(5) insert 연산

- 비트묶음 속에서 새로운 값을 삽입하는 연산으로서 우선 원하는 위치 비트를 마스크시킨 후 원하는 값에 OR 시킨다.

- 원하는 위치 비트를 마스크시킨 후 원하는 값에 OR 시킨다.

 

(6) clear 연산

- A, B를 비교하여 두 개의 워드가 일치하면 A를 0으로 세트한다.

- exclusive OR 연산으로 구현할 수 있다.