컴퓨터구조 6강 - 순차논리회로

soo·2022년 8월 9일
0

컴퓨터구조

목록 보기
6/6

학습 목표

  • 순차 논리회로의 구조를 제시하고 동작을 해석할 수 있다.
  • 타이밍 신호 발생기의 동작을 설명할 수 있다.
  • 레지스터 간 데이터 전송 방법을 설명할 수 있다.

내용

  • 6.1 순차 논리회로 소개: 순차 논리회로 구조, 상태도, 순서 검출기
  • 6.2 디지털 시스템: 제어장치와 처리장치, 타이밍 신호 발생기
  • 6.3 처리장치: 레지스터 간 데이터 전송 구조와 동작
  • 6.4 요약

6.1 순차 논리회로 소개

순차 논리회로

  • 기억소자(플립플롭, 레지스터)를 포함하고 있는 논리회로

학습 목표

  • 순차 논리회로의 구조를 설명할 수 있다.
  • 순차 논리 회로의 동작을 표현하는 방법을 이해한다.

내용

  • 6.1.1 순차 논리회로 구조
  • 6.1.2 순차 논리회로 동작 표현: 상태도
  • 6.1.3 순서 검출기: 상태도 활용 예제

6.1.1 순차 논리회로 구조

  • 조합 논리회로
    출력 = f(입력)f(입력)

  • 순차 논리회로
    출력 = f(입력,현재상태)f(입력, 현재상태)
    다음상태 = f(입력,현재상태)f(입력, 현재상태)

  • 현재상태(current state)
    기억소자의 출력

📍 동기/비동기 디지털 시스템

  • 동기(synchronous): 클럭을 공유하고, 플립플롭들이 같은 시간에 동작
  • 비동기(asynchronous): 클럭을 공유하지 않고, 플립플롭들이 각자 동작
    해석이 복잡하기 때문에 대부분의 디지털 시스템은 동기 순차회로

📍 동기 순차논리회로 구조 - 밀리 머신, 무어 머신

  • Mealy machine
    출력 = f(입력,현재상태)f(입력, 현재상태)
    다음상태 = f(입력,현재상태)f(입력, 현재상태)
  • Moore machine
    출력 = f(상태)f(상태)
    다음상태 = f(입력,현재상태)f(입력, 현재상태)
    입력과 출력이 직접 연결되어 있지 않음 👉 간단하므로 컴퓨터를 비롯한 대부분의 디지털 시스템에서 사용
  • 밀리 머신은 입력이 변할 때, 상태가 변할 때 다 출력이 변경되므로 통제가 불편
    무어 머신은 상태가 변할 때만 출력이 변경

6.1.2 순차 논리회로 동작 표현

📍 상태표

  • 입력, 현재상태, 다음상태, 출력을 나타내는 표
  • 동작 해석이 어렵다.
  • 입력 및 출력 논리식을 유도하기 쉽다.
  • 현재상태+입력이 입력

📍 상태도

  • 입력, 현재상태, 다음상태, 출력을 나타내는 그림
  • 해석이 쉽다.
  • 상태 수 = 2p2^p

📍 예시

현재상태입력(X)출력(Y)다음상태
S0S_000S0S_0
S0S_011S1S_1
S1S_101S1S_1
S1S_110S0S_0
  • 상태도는 다음 상태를 그림으로 파악하기 쉬움
    상태표는 하나하나 케이스를 보고 파악해야 함

6.1.3 순서 검출기

📍 순서 검출기(sequence detector)

  • 특정한 입력 패턴이 들어오는 순서를 검출하는 회로
  • 순차 논리회로를 순서 검출기로 사용할 수 있다.
  • 입력이 들어온 순서를 상태로 기억한다.

📍 예제: 2-입력 검출기

  • 현재 출력이 0일 때, 1이 연속해서 2번 입력되면 출력을 1로 변경
  • 현재 출력이 1일 때, 0이 연속해서 2번 입력되면 출력을 0으로 변경

🔶 동기 순차논리회로

  • 클록 펄스(CP)와 비동기 리셋(/R) 기본
  • x의 값이 두 번 연속해서 출력 y와 다르면 상태 변경
  • 초기 상태를 0으로 가정

🔶 상태도

상태/출력조건비고
S0S_0 / 0출력이 0일 때 0이 연속해서 두 번 입력된 상태초기상태
S1S_1 / 0출력이 0일 때 1이 한 번 입력된 상태
S2S_2 / 1출력이 0일 때 1이 연속해서 두 번 입력된 상태
S3S_3 / 1출력이 1일 때 0이 한 번 입력된 상태

🔶 상태표

  • 상태에 2진수 할당
    S0S_0 = 00, S1S_1 = 01, S2S_2 = 10, S3S_3 = 11
현재상태 / Q1Q_1 Q0Q_0입력 x출력 y다음상태 / Q1Q_1 Q0Q_0
S0S_0 / 0 000S0S_0 / 0 0
S0S_0 / 0 010S1S_1 / 0 1
S1S_1 / 0 100S0S_0 / 0 0
S1S_1 / 0 110S2S_2 / 1 0
S2S_2 / 1 001S3S_3 / 1 1
S2S_2 / 1 011S2S_2 / 1 0
S3S_3 / 1 101S0S_0 / 0 0
S3S_3 / 1 111S2S_2 / 1 0
  • 이것을 switch-case문 👉 멀티플렉서로 구현

🔶 멀티플렉서 구현

  • 회로 형태는 항상 같음
  • 현재상태를 멀티플렉서 선택선으로 사용
  • (입력변수가 한 비트일 때) 멀티플렉서 입력 값 결정 필요: 0, 1, x, x' 중 하나

6.2 디지털 시스템

디지털 시스템

  • 디지털 데이터를 처리하는 동기 순차 논리회로
    내부에 레지스터가 있고 레지스터가 클럭에 맞춰 데이터를 처리한다!

학습 목표

  • 디지털 시스템의 구조를 제시하고 기능을 설명할 수 있다.
  • 타이밍 신호로 실행 시간을 구분하는 방법을 이해한다.

내용

  • 6.2.1 디지털 시스템의 구조
  • 6.2.2 타이밍 신호 발생기

6.2.1 디지털 시스템

  • 명령(command): 외부에서 동작 지시
  • 제어장치: 명령과 상태(조건)를 참고하여 제어신호 생성
    상태도 기반 동작
  • 처리장치: 처리할 데이터를 임시 저장하고 데이터 조작(계산)
  • 비동기 리셋: 시스템 초기화
  • 시스템 클럭: 기억소자 동작 시간 제어

📍 처리장치 구조

  • 동기 순차 논리회로 모델
  • 레지스터파일: 레지스터 여러 개
    레지스터파일 좌측 사다리꼴: 멀티플렉서
    즉, 레지스터 안에 외부에서 주어진 값을 저장할수도 있고 조합회로에서 계산된 값을 저장할 수도 있다.
    클럭펄스가 데이터 입력값을 레지스터에 저장하는 역할
    조합회로: 출력이 결정되면 바로 출력 = 기억 불가
  • 마이크로오퍼레이션: 한 개의 클럭 구간 동안 수행하는 동작

6.2.2 타이밍 신호 발생기

  • 제어 장치 기능 중의 하나
  • 현재 몇 번째 클럭 펄스가 지나가는지 시간 구분
    예. 클럭 4개마다 명령어 1개 실행하도록 구간을 만듦 👉 시간대의 구별이 필요
    각 구간은 다시 t0, t1, t2, t3 / t0, t1, t2, t3... 으로 나뉨
    각 t0을 T0로 붙여서 주기로서의 첫 번째 구간, t1을 T1로 두번째 구간... 으로 표현

6.3 처리장치

처리장치

  • 레지스터의 데이터를 연산기에서 계산

학습목표

  • 처리장치의 구조를 제시하고,
  • 데이터 전달과 처리 과정을 설명할 수 있다.

내용

  • 6.3.1 레지스터 간 데이터 전송
  • 6.3.2 레지스터 전송 언어

6.3.1 레지스터 간 데이터 전송

📍 T1: R2 ⬅️ R1

  • R1의 출력을 R2의 입력으로 연결
  • 제어장치의 타이밍 신호 T1을 R2의 적재 가능(enable)에 연결
  • T1 이후에 R1의 값을 R2로 전달
  • 콜론 앞: 조건
    즉 T1=1일 때 값이 R1에서 R2로 복사가 된다

📍 병렬덧셈 T1: R2 ⬅️ R0+R1

  • T1구간에서 R0, R1을 더해서 R2에 적재를 한다.

📍 버스 전송 T1: R2 ⬅️ R0

  • 버스는 Tn 시점에 External 신호를 Rn에 저장하는 것도 가능함
  • 버스 연산도 가능: 연산기의 입력이 버스를 통해 전송된 값인 경우

6.3.2 레지스터 전송 언어

📍 RTL(Register Transfer Language)

  • 레지스터 간 데이터 처리를 표현하는 문장
  • 하드웨어로 구현 가능해야 함

📍 표현 방법

  • 절대적 규칙은 없고, 자유롭게 표현 가능
기호설명예제
문자(숫자)레지스터MAR, PC, R2
괄호레지스터의 일부IR[opcode], MBR[7:0]
화살표 ⬅️정보의 전달R2 ⬅️ R1
콤마 (,)동시 실행 마이크로동작의 구분R2 ⬅️ R1, R1 ⬅️ R2
콜론 (:)왼쪽: 동작 실행 조건 또는 시간
오른쪽: 실행할 동작
T3: AC ⬅️ AC + MAR
T1 + T2: R1 ⬅️ R2 AND R3
profile
기록+기록

0개의 댓글