Application of Logical microoperation
Logical micro operation
논리 마이크로 연산은 레지스터에 저장된 각 비트나 한 워드(word)의 일부분을 처리하는 데 매우 유용하다. 즉, 비트 내의 특정 값을 원하는 값으로 바꿔주는 연산이 가능하다.
다음의 예는 한 레지스터 A의 비트가 레지스터 B와의 논리 마이크로 연산에 의해 원하는 동작을 실행하는 것을 보여준다
A : 1010
B : 1100
1. selective-set
selective-set 연산은 이름 그대로 비트 내의 특정 값을 1로 바꾸고 싶을 때 쓰는 연산이다
1010 A (before)
1100 B
------
1110 A (after)
이때 연산 결과는 A의 비트와 B의 비트의 OR 연산 결과와 같게 되므로 결국 OR 마이크로 연산은 한 레지스터의 비트의 일부를 선택하는 데 사용될 수 있다.
2. selective-complement
selective-complement 연산은 B의 1에 대응되는 부분의 A의 비트를 보수로 만드는 기능을 한다.
1010 A (before)
1100 B
------
0101 A (after)
이것은 exclusive-OR 연산의 결과와 같으므로 exclusive-OR 마이크로 연산은 레지스터내의 비트 중 일부분을 보수화시킬 때 사용될 수 있다.
3. selective-clear
selective-clear 연산은 B의 1에 대응되는 A의 비트들을 클리어시키는(0으로 만드는) 연산으로 논리 마이크로 연산 A <- AㅅB' 와 같음을 알 수 있다.
1010 A (before)
1100 B
-------
0010 A (after)
4. mask
mask 연산은 B의 0에 대응되는 A의 비트들을 클리어시키는 연산으로 위의 셀렉티브 클리어 연산과 유사하며 and 마이크로 연산과 같다.
1010 A (before)
1100 B
------
1000 A (after)
5. insert
insert 연산은 기존 비트에 새로운 값을 삽입하는 연산으로 우선 원하는 위치 비트를 마스크시킨 후 원하는 값에 OR 시킨다
0110 1010 A (before) -mask 연산진행
0000 1111 B
-----------
0000 1010 A (after masking)
0000 1010 A (after masking) - insert 연산 진행
1001 0000 B (masking)
-------------
1001 1010 A(after insertion
6. Clear
clear 연산은 A와 B를 비교하여 두 개의 워드가 일치하면 A를 0으로 세트하는 연산으로 exclusive-OR 연산과 같다.
1010 A
1010 B
------
0000
An extract from 'Computer System Architecture, Mano, 3rd ed.'