본문 바로가기
CS/디지털논리회로

기억장치와 PLD, RAM의 구성, RAM의 확장 방법, ROM의 구성, ROM을 이용한 조합논리회로 구현

by Renechoi 2023. 6. 15.

1. 기억장치의 개요 

 

- 처리할 프로그램과 데이터를 기억하거나 처리한 후의 결과를 기억하는 장치

- 주기억장치와 보조기억장치로 구분

  - 주 기억장치: RAM, ROM, PLD 

  - 보조기억장치: 자기 테이프, 플로피 디스크, 하드 디스크, 레이저 디스크 등 

 

기억 장치는 2진 기억소자의 모임

- 기억장치에 기억디는 정보는 2진 비트들의 조합 

- 기억장치 내부에 이러한 비트들의 조합이 배열되어 데이터 기억

- 2진 데이터가 기억장치에 저장되는 단위는 단어 

 

단어

- 단어는 m개의 비트로 구성(m은 8, 16, 32, 64) 

- 각 단어의 위치는 주소 부여 

 

기억장치 성능

- 기억장치의 정보를 읽거나 기록하는 속도에 좌우

- 한 워드를 읽어내는데 걸리는 시간 - 액세스 타임 

 

 

반도체 메모리 

- F/F 회로를 실리콘 칩에 고밀도로 집적화한 것 

  -> RAM (Random Access Memory)

  -> ROM (Read Only Memory) 

 

PLD (Programmable Logic Device)

- 전자적 퓨즈로 접속된 내부 논리 게이트를 갖고 있는 집적회로

- 읽기만 간으한 기억 장치 

 

2. RAM 

 

- 임의의 기억장소에 사용자가 작성한 프로그램이나

- 데이터를 저장할 수 있고,

- 필요할 때마다 그 내용을 읽어낼 수 있을 뿐만 아니라, 자유롭게 변경시킬 수 있는 기억장치

전원이 없으면 정보가 손실되므로 휘발성 메모리라고 함

- RWM(Read Write Memory)라고도 함

 

 

SRAM(Static RAM)

- F/F으로 구성되어 사용하기 용이

- 고속의 액세스 타임
- 주로 캐시 메모리(cache memory)로 사용

 

DRAM(Dynamic RAM)
- 커패시터(capacitor)로 충전되는 전하의 형태로 정보 저장
- 주기적으로 커패시터를 충전시키는 동작 필요 (refreshing 동작)

- 주로 컴퓨터의 주기억장치로 사용

 

 

RAM의 블럭도 

 

 

데이터 입, 출력선

- 저장시킬 정보를 저장장치에 전달하고, 저장되어 있는 정보를 외부장치로 내보낸다.

주소선
- 기억장치 내의 단어를 선택 (1024개의 워드를 하나하나 지정할 수 있는) 

 

제어선
- 쓰기는 정보를 기억장치로 전송

- 읽기는 정보를 외부로 전송

 

RAM의 블럭도 

 

 

기억장치의 규모
- 저장할 수 있는 단어의 수와 각 단어를 구성하는 비트 수로 정의 예) 2^k x n

- 저장할 수 있는 단어 수는 2k 개, 각 단어는 n 비트

- 주소선으로 기억장치 내의 특정단어를 선택 가능

-각 단어는 그 위치를 나타내는 주소로 할당

☞ 예를들어 주소선의 수가 k라면
- 주소는 0 부터 2k -1 까지의 범위를 갖는다.

☞ 즉, 2^k×n 인 기억장치의 특정단어를 선택하려면 K 비트의 주소를 사용하면 된다.

 

1024 단어가 들어있다고 하면 2의 10승 => 10비트의 주소선이 있어야 한다 

 

 

 

 

 

 

(1) 내부 구성 

 

메모리 셀  = MC

 

데이터 출력 값이 배열로 되어 있고 하나 하나가 출력으로 나오게 되고, 선택된 번지의 address에 되어 있는 단어다. 

 

내부 구조
- 메모리 셀(기억소자)과 디코딩 회로(단어선택)로 구성

- 메모리 셀(MC: Memory Cell): RAM구성의 기본 단위, F/F 회로로 구성

 

 

 

메모리 셀의 구조 

 

 

선택단자(E) : 기억소자 선택

읽기/쓰기 단자(R/W) : 기억소자에 대한 읽기/쓰기 모드 결정
 - R/W=1 : 읽기모드를 수행하기 위하여 F/F과 출력단자 사이에 경로를 형성하여 출력이 나타나게 한다.

- R/W=0 : 쓰기모드를 수행하기 위하여 입력단자로 부터 F/F으로 경로를 형성하게 되어 입력단자의 정보가 기억소자(F/F)에 기억된다.

 

메모리 셀을 이용해 4x4 램의 내부 구조 

=> 4비트, 4개의 단어 

- 기억부, 해독부, 제어부로 구성

 

기억부

- 여러 개의 메모리 셀로 이루어진 부분

- 2차원의 테이블 혹은 행렬 형태

 

해독부
- 디코더로 구성

- 디코더는 기억장치 선택입력에 의해 구동

 

제어부

- 읽기/쓰기단자의 입력신호에 따라 데이터의 입,출력을 제어하는 부분

 

 

=> 주소 입력에 의해 각 단어가 선택됨 

=> 기억장치 선택 입력에 의해 

  - 선택입력이 0: 단어를 선택하지 않고

  - 선택입력이 1: 주소 입력값에 따라 단어 선택 

 

 

 

(2) RAM의 확장 

 

- 개개의 RAM을 서로 연결하면 더 큰 용량의 기억장치 구성 가능

- 기억장치 용량 : 단어의 수와 단어를 나타내는 비트 수에 의해 결정

※ 기억장치 용량 증가 방법

1) 기억장치내의 단어의 수를 증가시키는 방법

- 단어의 수는 주소선의 수와 관련

- 따라서 단어를 선택하는 주소의 길이를 증가

- 결국 주소선의 비트 수를 늘이는 방법

 

2) 단어의 비트 수를 증가시키는 방법

- RAM을 병렬 연결

 

 

i) 단어의 수를 증가 (2^k 부분) 

 

 

※ 1K×8 RAM
- 8비트로 표현된 1K(=1024)개의 단어를 가짐

따라서

- 10비트의 주소선과
- 각각 8개의 입, 출력선이 필요

 

※ 단어의 수를 증가시키는 방법

- 주소 비트를 1 증가시키면 기억용량, 즉 단어의 수는 2배 증가

- 따라서 2개의 RAM을 사용하면 단어의 수는 2배 증가하므로 주소 비트를 1 증가시키면 된다.

 

10비트 => 1 ~10 : 4개 RAM 주소선에 공통 연결 

 

디코더를 장착 시켜서 4개 중에 어떤 것을 선택할 것인지를 결정 => 추가적으로 선택할 수 있도록 해주겠다는 것 

(입력 2개 필요 => 11, 12번 비트가 입력으로 연결됨) 

 

 

 

결론적으로 1k x 8 램을 4배로 연결시키면 => 용량을 4배로 증가시킬 수 있다.

그러려면 주소선이 늘어나야 하고, 이때 2비트의 주소선이 늘어나게 되는데 기본적으로 10비트가  1kx8이라는 하나의 램에 대한 주소에 대한 정보를 갖고 있다면 추가 되는 두 개의 주소선은 칩 선택을 하는데 사용해서, 1,2,3,4 번을 선택할 수 있으므로 조정이 가능 

=> 통합해서 사용 가능 

 

 

 

 

 

 

 

 

 

 

 

ii) 단어의 비트 수를 증가 (n 부분) 

 

 

※ 1K×8 RAM → 1K×16 RAM 확장

1K×8 RAM 2개를 병렬 연결
- 각 단어의 수는 증가하지 않고,
- 각 단어의 비트 수가 2배, 즉 16비트로 증가

 

16개의 입출력선
- 2개의 RAM에 각각 입,출력

 

주소선과 칩 선택, 읽기/쓰기 입력

- 2개의 RAM에 공통으로 입력

 

 

 

 

 

 

=> 이 두가지 방법을 각각 할 수도 있고 혼용해서 사용할 수도 있다. 

 

 

 

 

 

3. ROM

 

 

ROM(Read Only Memory)이란?

- 기록되어 있는 데이터를 읽어낼 수만 있는 기억장치

- 내용을 변경할 수 없고, 전원을 끊어도 내용이 소멸되지 않음

 

ROM의 종류

- 마스크 ROM : 한번 저장한 것은 내용을 바꿀 수 없는 ROM

- PROM(Programmable ROM): 사용자가 데이터를 써 넣을 수 있는 프로그래밍이 가능한 ROM(기록된 내용은 변경 불가)

- EPROM(Erasable PROM): 한번 쓴 내용을 지울 수 있는 ROM

 

 

롬의 구성 

 

ROM은 고정된 2진 정보를 저장하는 기억장치

- 2진 정보는 설계자에 의해 결정되고,
- 필요한 내부 연결 패턴을 기억장치 내에 형성함으로써 구현

ROM 칩은 디코더와 여러 개의 OR 게이트로 구성

- ROM은 특별한 패턴 구조로 프로그래밍할 수 있는 내부의 전자 퓨즈선으로 구성

- 일단 한 형태로 프로그래밍되면 전원의 유무에 상관없이 그 패턴을 유지

 

 

고정된 2진 정보를 보관할 수 있도록 한다. 

 

 

 

 

8×4 ROM의 블럭도

-8개의 입력과 4개의 출력

 

8×4 ROM의 진리표
- 3개의 입력선 조합에 대한 ROM의 출력값

- 예를 들어

 -> 입력선 X,Y, Z 의 조합이 000 이면 출력선에는 F3 F2 F1 F0 = 0101 이 나타난다.

 -> 이 때 출력값은 ROM에 저장된 한 단어

 

 

 

 

 

ROM의 기본 구조

 

- 디코더와 OR 게이트로 구성
- k개의 입력이 디코더에 가해지면 2k 개의 디코더 출력 중 하나가 1이 된다.

- 이 디코더의 출력이 메모리 배열 중에서 1개의 단어를 출력하고, 이 단어의 비트들이 출력단자에 나타난다.

 

 

8 X 4 ROM의 내부구조 

 

 

3×8 디코더는 3개의 입력과 8개의 출력

디코더의 출력은 메모리 배열의 주소를 가르킴

- 디코더의 출력은 퓨즈선을 통하여 4개의 OR 게이트와 연결

- 이때 각 OR 게이트는 내부적으로 8개의 입력을 갖고 있다.

-즉, 8개의 내부 입력선을 갖는 4개의 OR 게이트 이므로, 총 8×4=32 개의 퓨즈선으로 연결

 

 

 

 

OR 게이트의 연결논리와 전자 퓨즈선의 표현

 

 

 

주의 할 점은 x 표시가 연결이 되어있다는 것을 의미! 

 

 

 

ROM은 디코더와 OR 게이트로 이루어진 논리회로

따라서 ROM을 이용하여 부울함수 구현 가능

 

예시 :8×4 ROM을 이용하여 부울함수 구현

 

 

 

 

 

 

 

반응형