본문 바로가기

Computer Science/컴퓨터구조

[컴퓨터구조] 레지스터 전송과 마이크로 연산

이 글은 www.youtube.com/watch?v=OV0R8zywNe0&t=5s 강의를 보고 공부한 내용 입니다.

 

 

●마이크로 연산

레지스터에서 또다른 레지스터로 보내거나, 안에서 동작하는 것을 마이크로 연산이라고 한다.
레지스터는 플립플롭으로 구성되었다.
하나의 clock 시간 동안 실행되는 기본 동작(shift, count, clear, load)

 

 

 

레지스터전송언어 처리하는 과정을 표시할 수 있지만 깔끔하게 표현하기위해 기호로 표현하는 것

마이크로연산, 전송을 간단하고 명료하게 표시하기 위해 사용

 

 

 

 

●레지스터 전송 언어 규칙

대문자로 표시
레지스터  왼쪽 FF(플릿플롭) -> MSB 

레지스터  오른쪽 FF(플릿플롭)-> LSB


레지스터는 각각 이름이 있다 그걸 모두 대문자로 표현한다.
16
비트 pc레지스터의 경우
상위(8~15) : PC(High)
하위(0~7) : PC(Low)

 

 

레지스터 정보 전송

-치환 연산자 사용

R1R2로 보낸다.

 

 

-제어 조건이 있을 경우

p0이면 실행하지 말라

 

 

-제어함수로 표현할 경우


클럭이 올라갈때만 동작하는 것을 보아 상승 엣지에서 동작하는 것이다.

 

 

 

서로 교환하라는 의미.

화살표 : 전송
, -
두 동작을 한꺼번에 처리

 

 

 

●공통 버스

cpu에서 레지스터 ~메모리, 레지스터, io 장치 사이에 데이터를 집단으로 보내는데 그 통로는 버스라고 한다.
여러 개의 레지스터들이 통로를 같이 쓰기 때문에 공통 버스라고한다.
돌하면 안되니깐 한번에 한 레지스터만 쓴다.

 

버스 제어기
s0,s1
2개의 제어기로 4개의 멀티플렉서에서 1개의 값만 출력한다.

버스을 제어하는 것이 멀티플렉서이다. 멀티플렉서를 사용하여 레지스터를 선택한다.

(ex)

BUS <=C, R1 <- BUS
R1 <-C

2개의 식은 같다.

 

3-상태 버퍼 멀티플렉서 대신 사용하여 버스 구성 가능, 3개의 상태로 동작

논리0, 논리1 : 정상적인 버퍼로 동작
고저항상태(High – impedance) : 출력차단

control input C에 들어가는 값이 i이면 작동하고 0이면 작동 안한다. 

 

 

 

 

●메모리 전송

 

 

 

마이크로 연산 분류

 

 

산술 마이크로 연산

더하기, 빼기, 보수, 2의 보수

어떤 레지스터에 값을 증가시키는 것 =increament
감소시키는 것 = decreament

 

이진 가산기

두 비트와 이진 캐리의 산술합을 계산
여러 개의 전가산기를 연결

4비트 덧셈기


C4, C3
가 결과가 다르면 오버플로우가 나온다.

 

 

 

이진 감가산기

m0이면 B값들이 그대로 전달되지만
M
1이면 B값의 보수 값이 나온다.
C0
이 들어가니 1의보수에1을 더한것과 같다. 2의보수를 더한것이다.

 

 

 

 

●산술 회로

기준 레지스터는 A이고 또 하나는 멀티플렉서의 0,1,2,3이 된다. 그리고 S1,S2의 값에 따라 0이면b, 1이면B’, 2이면0, 3이면1을 출력한다.

 

 

 

●논리 마이크로 연산

16개의 기본 기능이 있다.

0clear의 역할이다.

cpu에서 기본적인 논리 연산이다.

 

 

논리 마이크로 연산의 하드웨어 구현

 

 

●시프트 마이크로 연산

논리 시프트

직렬 입력으로0이 전송

왼쪽에 있는 비트가 오른쪽으로 한번 이동하는 것

빈 공간이 0으로 채워진다.

오른쪽 쉬프트를 예로 들면 R(n-1)이 나갔다가 다시 왼쪽으로 들어 가는 형태이다.

 

순환 시프트

r0가 튕겨 나가게 되는데 다시 빙 돌아가지고 제일 왼쪽에 비어진 공간에 들어가게 된다.
r1
가 튕겨 나가게 되는데 다시 빙 돌아가지고 제일 왼쪽에 비어진 공간에 들어가게 된다.

 

 

산술 시프트

부호 비트를 제외하고 시프트
왼쪽 시프트 : x2
오른쪽 시프트 : /2

ex) 1001(1)을 왼쪽 시프트 하면 1010(2)이 될 것이다.(맨앞에 부호 비트는 제외)
1001(1)
을 오른쪽 시프트 하면 10000(2^-1)이 될 것이다.

 

 

 

 

 

4비트 조합회로 시프터

MuxS값이 0이면 오른쪽으로 돌고 , 1이면 왼쪽으로 돈다.

 

 

 

●산술 논리 시프트 장치

산술연산, 논리연산, 시프트 연산을 나타낸다.
한 비트에 대한 연산을 다루기 때문에 4비트 연산을 만들려면 위 장치가 4개가 있어야 한다.

728x90