Chapter2
notion으로 작성됨
https://leeward-periodical-c43.notion.site/Chapter2-bec871109a2b48cea56071690ba64e31?pvs=4
Chapter2 디지털 부속품
디코더(Decorder)
leeward-periodical-c43.notion.site
태그: 디코더, 레지스터, 멀티 플렉서, 메모리
디코더(Decorder)
n비트의 이진코드는 2^n가지의 정보를 나타낼 수 있다.
디코더는 n비트로 코팅된 이진 정보를 최대 2^n개의 서로 다른 출력으로 바꿔주는 조합 회로이다.
이것을 n to m 디코더 라고 부른다.
2 to 4 decoder
위 사진은 2 to 4 Decoder이다. 2비트의 이진정보를 4개의 서로다른 출력으로 만들어 준다.
예를 들어서, A0과 A1이 0이면 NOT회로를 거쳐서 D0만 출력이 1이된다.
쉽게 생각하면, A0가 가질 수 있는 상태는 NOT게이트 때문에 2가지, A1도 2가지라서 총 2 X 2 = 4라고 생각하면 될 듯.
NAND게이트로 디코더
보수화된 출력으로 만드는게 더 효율적이기 때문에, NAND게이트로 디코더를 만들기도 한다.
2개의 2X4디코더로 만든 3X8디코더
A2라는 입력을 만들어서 NOT게이트로 연결한다. 그러면 2가지의 선택을 만들 수 있으므로, 이걸로 위쪽 2 X 4디코더를 선택할지 아래의 디코더를 선택할지 고르면 된다.
인코더(Incoder)
디코더와 반대되는 동작을 수행한다.
2^n개 입력값에 대해 n개의 이진코드를 출력한다.
멀티 플렉서(Multiplexer)
n개의 선택 입력에 따라 2^n개의 출력을 하나의 출력에 선택적으로 연결시켜주는 조합 회로.
4 X 1 멀티 플렉서(4개의 출력 중 하나를 고른다)
4개의 입력 i0~i3이 입력되고, s0, s1의 셀렉션 비트 입력이 디코드 되어 4개의 입력(i)중에서 하나를 선택해서 출력한다. MUX라고 부르기도 한다.
4x1 MUX
위 그림은 4 X 1 멀티 플렉서이다.
2개의 selection bit로 4개의 출력중 하나를 선택하는 MUX.
디코더와의 차이점
디코더는 n비트의 이진정보를 최대 2^n개의 출력으로 나타내주지만, 멀티 플렉서는 n개의 선택(s :셀렉션 비트)을 통해서 2^n개의 출력중 하나를 고르는 것 이다.
예를 들어, 2개의 셀렉션 비트를 통해서 4개의 출력중 하나를 고를 수 있다.
레지스터
n비트의 레지스터는 n비트의 이진 정보를 저장할 수 있다.
프로세서와 가장 근접한 위치의 고속 메모리이며, CPU가 요청하는데 필요한 데이터들을 잠시 저장하는 장소이다.
D플리플랍을 사용한 4Bit 레지스터
공통의 클럭 입력을 가지며, 동시에 상승 펄스를 제공하여 입력데이터가 저장될 수 있도록한다.
리셋은 모든 플립플랍의 출력을 0으로 만든다. 또한, 레지스터의 내용이 변경되지 않으려면 모든 클럭 신호가 차단되어야 한다.
새로운 이진 정보는 공통 클럭 신호에 맞춰서 동시에 load된다.
병렬 로드를 가진 레지스터
시프트 레지스터
레지스터의 저장된 정보들을 단방향 또는 양방향으로 이동시키는 레지스터이다.
각각의 플립플랍들은 연쇄적으로 연결되어있으며, 공통의 클럭펄스가 시프트를 제어한다.
4Bit Shift Register
D플리플랍을 이용한 가장 간단한 4비트 시프트 레지스터이다.
시프트 레지스터에서 특정한 클럭펄스에만 시프트가 일어나도록 제어할 수 있는데, 이는 CLK(클럭펄스)를 새로운 AND게이트에 연결하고 제어 신호도 연결하면, 제어신호에 따라서 특정 펄스에만 시프트가 일어난다.
병렬 로드를 가지는 양방향 레지스터
한가지만 설명을 하자면,
S0S1 = 00 이라면 각 MUX의 0입력이 선택되며 각 플리플랍의 출력이 각 MUX의 입력으로 들어간다. 따라서 다음 클럭 변이에서도 상태 변화가 일어나지 않는다.
나머지는 직접 셀렉션 비트를 바꿔가며 신호가 어떻게 바뀌는지 확인하자.
- S0S1 = 10 이라면 각 MUX의 1입력이 선택되어 오른쪽 시프트 동작을 수행한다.
- S0S1 = 01 이라면 각 MUX의 2입력이 선택되고, 왼쪽 시프트 동작
- S0S1 = 11 이라면 각 MUX의 3입력이 선택되고, 병렬 로드(parallel load)가 수행되어, i0~i3의 입력이 동시에 각 플립플랍에 전달된다.
2개의 셀렉션 비트로 4가지동작을 수행한다.
시프트 레지스터는 주로 원격지 시스템 사이에 데이터를 전송하고자 할 때 사용된다. 만약 n비트의 전송이 필요할 때, n개의 라인으로 병렬적으로 보내는 것 보다, 한 비트씩 전송하는게 경제적이기 때문에.
이진 카운터
입력 펄스에 따라 미리 정해진 순서대로 상태 변이가 진행되는 레지스터를 카운터라고 한다.
카운터는 어떤 사건의 발생 횟수를 세거나, 동작 순서를 제어하는 타이밍 신호를 만드는 데 사용된다.
예를 들어, 보통 000→001→010→011 같은 이진 오름 순서를 사용한다. 또한, n개의 플립플랍을 가진 n비트 이진 카운터는 0 ~ 2^n-1까지 카운트 할 수 있다.
이진 오름 순서의 원리를 살펴보면, 맨 아래 비트는 카운트 마다 변하고(보수화), 나머지 비트들은 그 밑의 모든 비트가1이되면 다음의 카운터에서 그 값이 변하는 것을 알 수 있다.
예를 들어서, 000→001→010→011→110→111 에서 가장 하위비트는 계속 보수화를 반복한다. 2번째 비트는 1번째 비트가 1이 된 다음에 1이되고 3번째 비트는 1번째 2번째 비트가 1이된 다음에 1로 된다.
카운터 회로는 보수화 기능을 가지고 있는 JK플립플랍을 사용한다. JK플립플랍을 입력이 모두1일때 출력을 보수화한다.
4Bit Binary Counter
Enable 입력이 0일때 모든 J와 K의 입력이 0이다. Enable입력이 1이면, 첫 번째 비트 A0의 출력은 보수화된다. A0의 출력이 A1의 입력으로 들어간다(Enable = 1일때), 여기서 A0은 또다른 클럭펄스 때문에 다시 보수화된다. 이것을 반복하는데, 결국 자신보다 이전의 모든 플립플랍들이 모두1이 되어야 상태가 보수로 변한다.
AND게이트를 연쇄적으로 연결했기때문에 가능하다.
메모리 장치
메모리 장치는 정보의 입출력 기능을 가지고있는 저장 요소들의 집합이고, 입출력에서 하나의 단위로 취급받는 word라는 단위로 정보를 저장한다. word는 컴퓨터에서 연산의 기본 단위가 되는 정보의 양. 예를 들어, 어떤 컴퓨터가 1byte로 기본 연산 / 저장을 한다면 이 컴퓨터에서 1word는 1byte이다.
메모리의 내부 구조는 한 워드를 구성하는 비트수나 전체 워드 수에 의해 규정된다. 각 워드는 0에서부터 2^k-1까지의 주소를 가지고있고, 주소입력(k개의 입력라인)의 값에 따라 특정 워드가 선택된다.
만약, 한 컴퓨터의 메모리가 1024워드인 경우라면, 이 메모리의 주소는 1024개가 있어야한다. 2진수로 1024개의 주소를 표현하려면 10비트가 필요하다.
임의 접근 메모리(Random Access Memory : RAM)
RAM에서는 워드의 물리적인 위치에 관계없이 접근 절차/시간이 동일하다.
RAM의 블럭도
n개의 입력과 출력을 가지고 있고, k개의 주소 라인으로 메모리 내의 2^k개 워드 중에서 하나를 선택할 수 있다.
저장 과정
- 원하는 워드의 이진 주소값을 주소 입력에 넣는다.
- 메모리에 저장될 데이터 비트들을 데이터 입력에 넣는다.
- write입력을 활성화 시킨다.
메모리에 저장된 한 워드를 꺼내오는 과정
- 원하는 워드의 이진 주소값을 주소 입력에 넣는다.
- read입력을 활성화 시킨다.
읽기 전용 메모리(Read Only Memory : ROM)
ROM에 저장된 데이터는 하드웨어의 수명이 다할 때까지 변하지 않는다. ROM에 한번 저장된 내용은 영구적이며 읽기 동작만 허용이 된다. ROM은 내부에 프로그램이 가능한 전자적 fuse가 있어서 전원이 끊어지더라도 계속 남아 있게 된다.
한 워드가 n비트이고, 총 m워드를 저장하는 m x n ROM의 블럭도
ROM은 컴퓨터에서 고정된 프로그램이나 변경되지 않는 상수들을 저장하는 메모리로 사용된다.
'컴퓨터 공학(Computer Science) > 컴퓨터 구조' 카테고리의 다른 글
컴퓨터 구조, ARM구조 간단 요약 (1) | 2023.11.23 |
---|---|
(컴퓨터 구조2) 레지스터 전송, 마이크로 연산 (0) | 2023.08.19 |