본문 바로가기
공부/논리회로설계

논리회로설계(레지스터전송수준설계)

by 맑은청이 2020. 6. 10.
728x90
반응형

안녕하세요. 옆집컴공생입니다. 오늘도 논리회로설계 수업 리뷰를 해보겠습니다.ㅎㅎ 아래 포스팅은 저번 주 강의 내용입니다.

 

https://com24everyday.tistory.com/119

 

논리회로와 설계(레지스터)

오늘 배운 강의를 복습해보겠습니다. 오늘은 레지스터에 대해 배워보았습니다. 저번 시간 강의 내용입니다. https://com24everyday.tistory.com/105 논리회로와 설계 스펙에서부터 상태천이도를 구하는 과

com24everyday.tistory.com

 

 


 

이 그림은 굉장히 중요한 그림인데요! 그 중요성에 대해 천천히 알아가보겠습니다.

 

다음은 레지스터 표현법입니다.

(a)는 가장 간단하게 표현한거구요. 

(b)는 몇비트인지, 각 비트 별로 인덱스가 존재하고 특정비트를 선택할 수 있습니다.

(c)는 a, b 의 절충형 이고

(d) 는 상위 하위를 나눈겁니다.

 

어떤 식으로든 레지스터의 내부 구조가 다음과 같다는 건 알고 있으셔야겠죠?

레지스터 내부 구조

 

위 사진과 같이 레지스터를 보는걸 '게이트 수준'이라고 합니다. 그리고 (a),(b),(c),(d) 처럼 레지스터를 보는 걸 '레지스터 전송수준(Register Transfer Level)'이라고 합니다. '게이트 수준'과 '레지스터 전송수준'의 차이추상화의 차이입니다. 

 

이번 6장의 목표는 게이트 수준이 아닌 추상화단계에서 보는 겁니다.

 

그럼 왜 추상화 수준을 높여서 보는 걸까요? 

이는 '설계의 편리함과 생상성 증대' 를 위한 겁니다. 

차근차근 이해해봅시다. 

 

저번 강의에서 레지스터는 소프트웨어에서 변수와 같다고 했습니다. 다음 그림을 봅시다.

 

왼쪽 그림을 봅시다. 레지스터 두개, R1과 R2가 보입니다. 이 두 레지스터의 차이는 뭘까요?(눈에 보이는 걸 말해주세요!)

 

네, 맞습니다. R2는 EN, 인에이블, 즉 로드가 있는 레지스터로 전송시점 조절이 가능합니다

보면 R1의 출력이 R2의 입력으로 항상 연결이 되어 있지만 Load에 클럭과 동기화된 값을 나타나게 함으로서 R1의 내용이 R2로 전달되는 시점을 우리가 원하는 시점인 t+1에서 일어나게 할 수 있습니다.(Delay로 인해 t에서 일어나지 않습니다.)


2,3 장 Review

게이트수준에서 기능표시하는 방법

조합회로 : 진리표

순차회로 : 상태천이표/상태천이도

 

이것들로부터 설계를 해서 스키메틱을 구했습니다. 

 

여기서 말들에 집중해야합니다.

게이트 수준의 설계게이트 수준의 스키메틱입니다. 즉 게이트들의 연결도인거죠.

레지스터 전송 수준에서의 설계레지스터 전송 수준에서의 스키메틱입니다. (여기에서의 기능 표시는 '레지스터 전송표기법'을 통해 합니다.'

이게 뭔 말장난이냐구요? 장난이 아닙니다!

 

위에서 봤던 이 그림은 스키메틱입니다. 어떤 수준의 스키메틱일까요? 

네, 레지스터 전송 수준의 스키메틱입니다.

 

게이트 수준의 스키메틱을 볼까요? 레지스터 R1은 다음과 같은 게이트 수준 스키메틱을 가집니다. 

그리고 레지스터 R2는 아래와 같은 게이트 수준 스키메틱을 가집니다.

뭔가 추상도를 높여서 생산성을 증대시킨다는 말의 의미가 와닿지 않나요? 만약 게이트 수준의 설계를 일일히 다 하게 된다면 어느 세월에 다할지 상상이 안됩니다.

 

 


레지스터 전송 수준에서의 설계법

 

자 그럼 설계방법에 대해 알아볼까요? 레지스터 전송 수준에서의 설계법은 '"다수의 레지스터 전송 표기법"에서 부터 레지스터 전송 수준의 스키메틱을 구하는 겁니다.'

 

기본적으로 레지스터 전송 표기법은 아래와 같습니다.

 

위에서 부터 설명하자면 

'레지스터를 영문자로 작명'

'() 와 같은 소괄호는 레지스터의 부분 의미'

'레지스터 전송 표시'

'레지스터 전송 표시2'

'메모리에서 전송'

입니다.

 

이제 세번째 심볼을 보겠습니다.

이는 '레지스터 R2의 내용을 R1으로 트랜지스터하는 동작' 입니다.

 

♪ 질문: 화살 표는 ← 이것만 가능한가요? R1→R2 이렇게는 안되나요??

 

▷네 안됩니다. 화살표 방향은 이렇게만 가능합니다.

 

중요한 의 오른쪽에는 레지스터 뿐만 아니라 다른 것도 올 수 있습니다

예를 들어 입력이 IN 이면 R <- IN 이런 식으로 표현이 가능하고 또

덧셈기의 출력이 SUM이라면 R1 <- SUM (출력 값을 레지스터 R1 으로 트랜스퍼) 이런 식으로도 표현이 가능합니다.

하지만 왼쪽은 무조건 레지스터가 와야합니다!!

 


이처럼 소프트웨어의 변수할당과 유사한 레지스터 전송에는 뭐가 중요할까요

▶바로 '특정 시점'입니다. 이 특정시점은 'Clock 주기'를 말합니다.

여기에서는 언제, 즉 어떤 클럭 주기에서 트랜스퍼가 일어나야 하는지가 표기되어 있진 않지만 전체 설계에서는 그 정보가 반드시 필요합니다.

 

 

이는 트랜스퍼가 동시에 일어남을 의미합니다. 동시에 일어나는 건 쉼표(,)로 구분됩니다. 여기서는 두 레지스터의 값이 Swap(교환) 되는 거를 보여주고 있습니다.

 

R1 <- R2 ; R3 <- R4 

 

이 경우에는 2클럭 사이클에 거쳐서 트랜스퍼가 일어나는겁니다. 세미콜론(;) 으로 표시됩니다. 

 

대괄호가 있으면 메모리를 나타냅니다. 즉 메모리 M의 특정번지(AR)을 읽어서 그 내용을 DR 레지스터로 트랜스퍼하는 겁니다. 

 

 

 


이렇게 오늘은 레지스터 전송 수준 설계에 필요한 레지스터 전송 표기법에 대해 알아보고 게이트수준레지스터전송수준의 차이점에 대해 알아보았습니다. 수고하셨습니다.

 

 

728x90
반응형