[컴퓨터시스템구조] 5일차 - Register Transfer Language, Microinstruction



만든 날짜:2018-09-11 오후 12:50
해당 글은 수업을 들으며 정리한 내용입니다. 오류 및 개인적인 내용이 다수 포함 될 수 있습니다. 또는 학습에는 적합하지 않을 수 있습니다.

ALU는 산술연산을 하는 디바이스다.

레지스터들 사이에 명령어가 왔다갔다 하는 것을 마이크로오퍼레이션이다. 


Register Transfer Language (RTL)
: the symbolic notation
B레지스터에서 A레지스터로 데이터를 옮겨라

디지털 컴퓨터의 내부 하드웨어 조직을 정의하는 방법?
  1. 레지스터 어떤게 들어있는지 / 역할
  2. 어떻게 연결할 것인가?
  3. 마이크로 오퍼를 작동시키기 위한 컨트롤
이 것을 한 학기 동안 배운다.
빨간색 중요.

레지스터의 종류
  • AR (Address Register) : 주소를 저장하는 레지스터
  • DR(Data Register) or BR(Buffer Register) : 데이터를 저장하는 레지스터
  • IR(Instruction Register) : 명령어를 저장하는 레지스터
  • PC(Program Counter) : 순서를 정해준다. 
    ex) A=10; B=20; C=A+B; 
  • R0 ~ R15  or  A ~ H. : 범용 레지스터를 나타낸다. 범용R

8비트 레지스터 (8 bit R)

R2라는 레지스터인데 16bit R

위 8bit (high)
밑 8bit (low)

기본 심볼
  • letters : 
  • () : 레지스터의 어떤 부분. 
예를 들어서
R2(0-7), R2(L)
 R2(L) R2의 low 8bit을 나타낸다.
  • [ ](대괄호) : 메모리에 주소를 지정한다.
   ex) DR<-M[AR] : AR의 주소에 메모리 번지에서 데이터를 가져와서 DR에 넣어라
메모리 read : DR<-M[AR]
메모리 write : M[AR]<-R1

  • ß ⬅️: 데이터의 전달 (어디서 어디로 간다.)
  • ,(쉼표) : 동시에 (at the same time) , 앞에꺼 뒤에꺼가 동시에 일어난다.
 R1과 R2는 스왑한다. (플립 플롭의 out에서 나와서 in바로앞에서 대기하고 있다가 클락이 뛰면 교환이 가능하다. temp변수 필요없음, 하드웨어 적으로는 동시에 보내는 것이 가능하다.)
 스왑이 중요한게 아니고 콤마(,)가 중요. 동시에 일어나는 것.



Control Fnc. : 레지스터의 인풋을 활성화시키는 역할을 한다. 
ex) : R2⬅️R1
조건문이다. 의미 : if( P==1 then R2 ⬅️R1)
P가 1이면 수행.

T: R2⬅️R1, R1⬅️R2
T가 1이면 , R1과 R2의 값을 동시에 transfer
T==1 이라면.  수행.
T:조건.

A,B : DR⬅️AR
A와 B조건이 참이면 DR에 AR데이터를 전송

A,B 는 조건
DR,AR은 레지스터
⬅️는 마이크로 오퍼레이션

컴퓨터는 싱크를 클락에 맞춘다.
우리는 라이징 엣지(올라갈때, 뛸때) 맞춘다고 가정한다.

버스
하나가 아닌 여러개 라인
묶어서 데이터를 전송
  • Address bus
  • Data bus
  • Control bus
원래는 이거임.

(위)R0에서 (아래)R3에 보내고 싶을 경우
BUS에 R0데이터를 넣는다. 그리고 버스에서 R3로 전송한다.
R3<-R0 
=(BUS<-R0 
    R3<-BUS)
데이터가 전송될 때 중간에 버스를 이용한다.


산술연산 로직연산 할 수 있다.


 : 빼기 R1-R2(R2의 2의 보수)

산술 연산 가능하다.

 합집합, 교집합...



P+Q가 1일때 (P==1 or Q==1) 동시에 R1에 R2+R3(더하기)을 넣고, R4에 R5 or R6를 넣어라

P+Q: R1<-R2+R3, R4<-R5vR6


shl (왼쪽으로 옮김)
shr (오른쪽으로 옮김)
나가는 비트는 버림


cil (서큘러 시프트 레프트)
cir

ashl (Arithmetic shift-left : 부호부분은 유지하고 shift-left한다.)
ashr
나가는 부분 버림


5장
기본 컴퓨터 디자인

소프트웨어 : 프로그램의 집합
프로그램  : 순서(order)있는 명령의 집합
instruction : 

Microinstruction : 비트(01)로된 그룹 으로



Op-code  : 수행되어야할 명령어를 정의한다. 또는 오퍼랜드의 주소를 표기한다.
operand : 수행되어야할 데이터이다.

메모리에서 명령을 가져온다.
op-code를 해석한다. 
어떻게 작동할지 컨트롤 시그널을 제너레이션한다. Microinstruction 

AC(Accumulator) : 누산기 ,  (레지스터 연산도하고 ,연산도 할 수 있다.)



받았을 때 명령어일 경우

명령어가 더하기 였을 경우.
Direct면 바로 더한다.

Indirect면 주소를 가리키는 것이므로 간접주소 (C에서 pointer 같이)

I가 0이면 주소로가면  데이터가 있다. Direct
I가 1이면 주소로가면 데이터를 가리키는 주소가 있다. Indirect


더하기인경우 두 수가 있어야 더하는데 AC에 data가 들어있다. 그 data와 더한다.
그 결과가 AC에 다시 누산된다.


IR, TR(템포러레지스터), DR, AC 다 16bit
AR, PC 는 12bit (다음 주소 등을 표현하므로(Address) 12bit)
INPR, OUTR 는 8bit( 아스키7bit+패리티1bit)



[컴퓨터시스템구조] 5일차 - Register Transfer Language, Microinstruction [컴퓨터시스템구조] 5일차 - Register Transfer Language, Microinstruction Reviewed by Lifer on 11/04/2018 Rating: 5

댓글 없음:

Powered by Blogger.