Post on 03-Jul-2020
Chapter 12
메모리와 프로그램 논리장치
- 2 -한국기술교육대학교 전기전자통신공학부
1. 메모리 개요1. 메모리의 구조
v 메모리 번지 레지스터(MAR : memory address register) : 메모리 액세스시특정 워드의 주소가 MAR에 전송된다.
v 메모리 버퍼레지스터(MBR : memory buffer register) : 레지스터와 외부 장치 사이에서 전송되는 데이터의 통로.
입력주소(n비트)
메모리
2n개의 워드워드당 m비트
MAR
MBR
데이터(m비트)
입력 출력
읽기 제어 신호
쓰기 제어 신호
n비트로 된 MAR은 최대 2n개(0~2n-1)의 메모리 번지를 표시.
- 3 -한국기술교육대학교 전기전자통신공학부
2. 메모리의 동작
q 메모리 읽기(read) 동작
① 선택된 워드의 주소를 MAR로 전송한다.② 읽기 제어 입력을 동작시킨다.
110010014746
48
450000101110
01101010
MAR
MBR
메모리 주소0~1023
110010014746
48
450000101110
11001001
MAR
MBR
메모리 주소0~1023
읽기 동작 전 읽기 동작 후
- 4 -한국기술교육대학교 전기전자통신공학부
q 메모리 쓰기(write) 동작
① 지정된 메모리의 번지를 MAR로 전송한다.② 저장하려는 데이터 비트를 MBR로 전송한다.③ 쓰기 제어 신호를 동작시킨다.
쓰기 동작 전 쓰기 동작 후
110010014746
48
450000101110
01101010
MAR
MBR
메모리 주소0~1023
011010104746
48
450000101110
01101010
MAR
MBR
메모리 주소0~1023
- 5 -한국기술교육대학교 전기전자통신공학부
3. 메모리 분류
반도체 메모리
순차액세스메모리 랜덤액세스메모리
RAM ROM
DRAM SRAMMaskROM
FieldPROM
Fuse-linkPROM
EPROM EEPROM
반도체 메모리의 분류
- 6 -한국기술교육대학교 전기전자통신공학부
q 접근 방법에 의한 분류
v RAM(Random Access Memory) : 접근 시간이 어느 위치나 동일하게 걸리는 메모리 형태
v SAM(Sequential Access Memory) : 원하는 위치에 도달하는데 일정한 시간이 경과되는 형태이므로 접근 시간은 위치에 따라서 다르다.
q 기록 기능에 의한 분류
v RWM(Read and Write Memory) : 기록과 판독 두 가지를 모두 수행할 수 있는 메모리 (RAM은 RWM 메모리를 의미).
v ROM(Read Only Memory) : 판독만 가능한 메모리
w Mask ROM(MROM) : 제조시 정보 기록
w PROM(Programmable ROM) : 제조 후 사용자가 기록할 수 있는 ROM
w Fuse-link PROM : 전기적 fuse를 사용하여 한번만 기록 가능
w EPROM(Erasable PROM) : 자외선으로 내용을 지운 후, 다시 기록 가능
w EEPROM(Electrically Erasable PROM) : 전기적으로 내용을 지우고 다시기록 가능
- 7 -한국기술교육대학교 전기전자통신공학부
q 기억 방식에 의한 분류
v 정적 RAM(Static RAM : SRAM) : 2진 정보를 저장하는 내부 Flip-flop으로구성되며, 저장된 정보는 전원이 공급되는 동안에 보존. 사용하기가 쉽고읽기와 쓰기 Cycle이 짧은 특징이 있다.
v 동적 RAM(Dynamic RAM : DRAM) : 2진 정보를 커패시터(C)에 공급되는전하의 형태로 보관. 전력 소비가 적고 단일 메모리 칩 내에 더 많은 정보를저장할 수 있으며, refresh회로가 필요하다.
q 휘발성/비휘발성 메모리
v 휘발성(volatile) 메모리 : 일정한 시간이 지나거나 전원이 꺼지면 기록된 내용이 지워지는 메모리 형태. RAM은 휘발성 메모리에 해당.
v 비휘발성(non-volatile) 메모리 : 전원이 차단되어도 기록된 정보가 계속유지. 자기 코아나 자기 디스크 메모리가 해당. boot ROM
q 기억소자에 의한 분류
v 바이폴라(bipolar) 메모리 : bipoar TR을 사용한 메모리로서 TTL, ECL 제조공정 적용 . 액세스 시간이 빠르지만 소비전력이 크다.
v MOS 메모리 : pMOS, nMOS , CMOS를 사용한 메모리, 바이폴라 메모리에 비해서 속도가 느리지만 소비전력이 적어 대용량 메모리로 사용
- 8 -한국기술교육대학교 전기전자통신공학부
4. 컴퓨터에서의 메모리
v 주기억장치(main memory) : 중앙처리장치(CPU: central processing unit)에 의해 현재 실행되고 있는 프로그램과 데이터를 저장
v 보조기억장치(mass storage) : 이외에 다른 경우에 사용을 목적으로 프로그램과 데이터를 저장하며, 대용량임.
v 주소버스와 제어버스는 단방향이지만 데이터버스는 양방향이다.
데이터 버스
RAM ROM 입력장치 출력장치
주소 버스
제어 버스
CPU
컴퓨터 시스템 블록도
- 9 -한국기술교육대학교 전기전자통신공학부
2. ROMq ROM의 구성
v ROM은 AND 게이트와 OR 게이트로 구성된 조합논리회로
v AND 게이트는 디코더를 구성한다.
v OR 게이트는 디코더의 출력인 최소항들을 합하는 데 사용되며, OR 게이트의 수는 ROM의 출력선의 수와 같다.
n개의입력선
메모리 배열2n 워드 m비트
ROM
×디코더
m개의 출력선
- 10 -한국기술교육대학교 전기전자통신공학부
v 32x4 ROM 구조 예
v 디코더의 5비트 주소입력으로부터 선택되는 최소항은 입력의 5비트와 등가인 10진수로 표시되는 최소항이다.
v 디코더의 32개 출력은 각각의 OR 게이트의 퓨즈를 통해 연결된다.
v 그림에는 OR 게이트의 입력에는 32×4=128개의 내부 퓨즈가 있다.
5 32디코더×
012
31
A0
A1
A2
A3
A4
F3 F2 F1 F0
퓨즈링크
주소입력
최소항
32×4 ROM의 내부 논리 구조
5 32디코더×
012
31
A0
A1
A2
A3
A4
F1 F2 F3 F4
30
- 11 -한국기술교육대학교 전기전자통신공학부
v ROM은 2진 데이터를 표시하기 위해 각 주소에 해당하는 워드의 내용을 나타내는 진리표를 사용한다.
v 진리표에서 입력은 주소에 해당하고, 출력은 주소에 대한 워드의 내용이다.
입 력 출 력
A4 A3 A2 A1 A0 F3 F2 F1 F00000
0000
0000
0011
0101
0100
1110
1001
0110
…… ……1111
1111
1111
0011
0101
1010
0000
0111
1001
[Example]
5 32디코더
×
012
31
A0
A1
A2
A3
A4
F3 F2 F1 F0
30
3
2928
- 12 -한국기술교육대학교 전기전자통신공학부
q ROM을 사용한 조합논리회로의 구현
§ 구현 예
åå
=
=
)2 0,(),(
)3 2, 1,(),(
2
1
mBAF
mBAF
2 4디코더
×
00A
F2
011011B
F1
2 4디코더
×
00A
F2
011011B
F1
AND-OR 게이트의 ROM AND-OR-NOT 게이트의 ROM
- 13 -한국기술교육대학교 전기전자통신공학부
예제 12-1 2비트의 2진수를 입력하여 입력의 제곱에 해당하는 2진수를 출력하
는 조합논리회로를 ROM을 사용하여 구현하여라.
입 력 출 력10진수
입 력 출 력
A1 A0 B3 B2 B1 B0 A1 A0 B3 B2
0011
0101
0001
0010
0000
0101
0149
0011
0101
0001
0010
2 4디코더
×
00A0
B3
011011
B2
A1
B1 B0
- 14 -한국기술교육대학교 전기전자통신공학부
3. RAM
qSRAM의 메모리 셀 구조와 동작
⊙ S=1일 때 이면 래치에 저장된 데이터 비트가 데이터 출력 단자를통하여 출력
⊙ S=1일 때 이면 데이터 입력 단자에 있던 데이터 비트가 래치로 전송되어 저장.
BinaryCell
R/W
데이터출력
데이터입력
선택입력(S)
SRAM의 메모리 셀 구조
0=WR/
1=WR/
QR 데이터출력
S
데이터입력
선택입력(S)
R/W
- 15 -한국기술교육대학교 전기전자통신공학부
q SRAM의 기본 구조
v BC(binary cell) : 1개의 메모리 셀을 표시
v 인에이블 입력이 논리 1이면 2개의 번지 입력값에 따라 4개의 워드 중 하나가 선택된다.
2 4디코더
×
D0
D1
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
D2
D3
A0
A1
E
R/W
데이터 출력
데이터 입력
주소입력
4×3 정적 RAM의 기본구조
- 16 -한국기술교육대학교 전기전자통신공학부
256×4 SRAM의 구조
A0
A1
A2
A3
A4
A5
A6
A7
D0D1D2D3
CS
R/W
O0O1O2O3
행 디코더
입력버퍼
32 32Memory Cell Array
×32
8 8 8 8
8 8 8 8
출력버퍼
입력데이터선택
출력열 디코더
A0A1A2A3A4A5A6A7
D0D1D2D3
CSR/W
SRAM256 4×
O0
O1
O2
O3
데이터 출력
주소입력
데이터 입력
WRITEREADEN
- 17 -한국기술교육대학교 전기전자통신공학부
q동적 RAM(Dynamic RAM, DRAM)
§ DRAM의 메모리 셀 구조와 동작
(1) Write
v : 입력 버퍼는 Enable, 출력 버퍼는 Disable.
v 메모리 셀에 논리 1을 저장하기 위해서는 Din=1로 하고, 행(row) 입력이 논리 1이면트랜지스터는 ON상태가 되며, 콘덴서에는 (+) 전압 충전.
v 논리 0을 저장하기 위해서는 Din=0으로 하면 콘덴서는 충전되지 않는다.
콘덴서에 논리 1이 저장되어 있는 경우는 콘덴서는 방전.
출력버퍼
열 입력
입력버퍼
재충전 입력행 입력
재충전 버퍼
R/WDout
Din
콘덴서
DRAM의 메모리 셀 구조
0=WR/
(2) Read
v : 출력 버퍼는 Enable, 입력 버퍼는 Disable.
v 행 입력이 논리 1이면 트랜지스터는 ON상태, 콘덴서는 비트선을 통하여 출력 버퍼에 연결
v 저장된 데이터는 출력(Dout)을 통하여 외부로 출력
(3) 재충전(Refresh)
v : 행입력=1, 재충전입력=1이면 트랜지스터가 ON되어 컨덴서는 비트선에 연결
v 출력 버퍼는 Enable되고, 저장된 데이터 비트는 재충전 입력이 논리 1이 되어 Enable되므로 재충전 버퍼에 다시 입력
1=WR/
1=WR/
- 18 -한국기술교육대학교 전기전자통신공학부
§ DRAM의 구조
(1) 주소 입력의 멀티플렉싱
w 14비트의 주소 입력은 7비트의 열과 7비트의 행)으로 나누어진다. 먼저 입력에 의해 7비트의 행 주소가 입력되어 행 주소 래치에 저장되고, 다음에 입력에 의해 7비트의 열 주소가 입력되어 열 주소 래치에 저장된다.
(2) 메모리 재충전 회로§메모리의 재충전 동작은 모든 메모리 셀이 행 입력을 통하여 재충전이 될 때까지 순차적으로 각각의 메모리 셀을 재충전한다. 이것을 버스트(burst) 재충전이라고 하며,2~4㎳마다 반복한다. 재충전 동안에는 데이터를 메모리로부터 읽기와 쓰기불가.
§ 모든 재충전을 한 번에 하지 않고
읽기와 쓰기 동작 사이에 행의
재충전 동작을 분배해서 수행할 수
있으며, 이 경우에도 재충전은
2~4㎳마다 반복해야 한다.
RASCAS
128 128Memory Cell Array
행주소래치
A0/A7
128
A1/A8A2/A9A3/A10A4/A11A5/A12A6/A13
열주소래치
행주소
디코더
행주소
디코더128
CS
RAS
×
R/W
CAS
Dout
Din
A0~A6 A7~A13
CAS
RAS
CS
주소
- 19 -한국기술교육대학교 전기전자통신공학부
q메모리 확장
§ 워드 길이 확장
v CS(chip select)는 RAM을 선택하는 입력
v : 선택된 RAM 칩의 읽기(read)와 쓰기(write) 동작을 제어
v 출력의 ▽ 표시는 3 상태(tri-state) 출력을 표시
v CS=0이면 RAM 칩은 선택되지 않고 출력은 Hi-Z 상태가 된다.
v CS=1이고 이면 주소에 의해 선택된 8비트의 데이터가 출력선을 통하여 출력
두개의 16×4 RAM을16×8 RAM으로 확장
WR/
1=WR/
A0CS
RAM×16 4
R/WRAM
×16 4
A1 A2 A3 A0 A1 A2 A3
A0
A3~
D0
D7
O0
O7
~ ~
- 20 -한국기술교육대학교 전기전자통신공학부
예제 12-2 워드길이 확장
2개의 1K×8 RAM을 사용하여
1K×16 RAM을 구성하여라.
10주소
16비트 데이터 입력
16 비트데이터 출력
CSR/W 8
8
dataaddr
CS
dataaddr
CS
×RAM 1K 8
×RAM 1K 8
8
8
R/W
R/W
q 워드 용량 확장
v 16×4 RAM 2개를 사용하여 32×4 RAM을 구성하는 경우
v 32개의 서로 다른 주소가 존재하므로 주소버스의 길이는 5.
v A4=0이면, A4A3A2A1A0=00000~01111
v A4=1이면, A4A3A2A1A0=10000~11111
2개의 16×4 RAM을 이용하여 32×4 RAM으로 확장
A0
RAM×16 4
R/WRAM
×16 4
A1 A2 A3 A0 A1 A2 A3
A0
A3
~
D0
D3
O0
O1~
O2
O3
A4
CS CS
- 21 -한국기술교육대학교 전기전자통신공학부
예제 12-3 1K×8 RAM 4개를 사용하여 4K×8 RAM을 구성하여라.
×
R/W
3
RAM 1K 8
dataaddrRWCS
dataaddrRWCS
dataaddrRWCS
dataaddrRWCS
2 4디코더
×
2 1 0
×RAM 1K 8
×RAM 1K 8
×RAM 1K 8
0~1023
1024~2047
2048~3071
3072~4095
8
810EN
A0~A9A10A11 D0~D7
D0~D7
- 22 -한국기술교육대학교 전기전자통신공학부
4. 프로그램 가능 논리장치(PLD)
v PLD(Programmable Logic Device)는 주로 AND 게이트와 OR 게이트의 배열(array) 구조를 갖는 IC이며 각 게이트 입력에 퓨즈링크(fuse-link)가 연결되어 있다. 사용자가 적당한 곳의 퓨즈링크를 전자적으로 끊음으로써 AND-OR 즉 적의 합(sum of product)의 형식으로 된 조합논리함수를 실현할 수있다.
PLD의 퓨즈링크 PLD의 개략도
A
Y1
퓨즈링크
Y2 Y3
B C
AND Gate Array
OR Gate Array
A
Y1 Y2 Y3
B C
- 23 -한국기술교육대학교 전기전자통신공학부
q PLD 종류
v PROM(Programmable ROM)
PROM은 디코더의 역할을 하는 고정 AND 배열과 프로그램이 가능한 OR 배열로 구성되어 있다. PROM은 주소 지정 메모리로 사용된다.
v PLA(Programmable Logic Array)
AND 입력과 OR 입력 양쪽을 다 프로그램 할 수 있어서 가장 융통성 있게 프로그램 할수 있다. 그러나 동작속도와 집적도가 저하된다.
vPLE(Programmable Logic Element)
AND 입력은 고정되고 OR 입력만 프로그램 가능
vPAL(Programmable Array Logic)
AND 입력만을 프로그램 할 수 있고 OR 입력은 고정
v GAL(Generic Array Logic)
GAL은 여러 가지 PLD 중 가장 최근에 개발된 소자다. PAL과 마찬가지로 프로그램이가능한 AND 배열과 고정 OR 배열 및 출력논리로 구성되어 있으나 GAL은 다시 프로그램할 수 있고 또한 출력논리도 프로그램이 가능하다는 두 가지 점에서 PAL과 차이가 있다.
- 24 -한국기술교육대학교 전기전자통신공학부
1. PLA
3입력-3출력의 PLA의 구조
O2 O1 O0
I1I2 I0
AND Array
OR Array
예제 12-4 다음과 같은 SOP 형식으로 표현된 논리함수가 주어졌다. 이것을 주어진구조의 PLA로 구현하여라.
BCBAYBCABCBAY
BCAABY
+=
++=
+=
3
2
1
xxxx
Y1 Y2 Y3
BA C
ABABCABBCAB
- 25 -한국기술교육대학교 전기전자통신공학부
2. PLEv AND 게이트 입력은 고정되고 OR 게이트 입
력만 프로그램v PLA에 비해서 프로그래밍 상에 제한이 있게
된다. PLE는 PROM과 유사.
최소항입 력 출 력
B1 A1 B0 A0 S1 S0 Cm0m1m2m3m4m5m6m7m8m9m10m11m12m13m14m15
0000000011111111
0000111100001111
0011001100110011
0101010101010101
0001111011100001
0110011001100110
0000000100011111
2비트 2진수 가산기의 진리표
ååå
=
=
=
)15 14, 13, 12, 11, 7,(
)14 13, 10, 9, 6, 5, 2, 1,(
)15 10, 9, 8, 6, 5, 4, 3,(
0
1
mC
mS
mS
S0 CS1
m0m1m2m3m4m5m6m7m8m9m10m11m12m13m14m15
A0A1 B0B1
X
- 26 -한국기술교육대학교 전기전자통신공학부
예제 12-5 어떤 논리함수를 간략화하여 항의 수를 최소로 한 결과 다음과 같은논리함수를 얻었다고 하자. 이 논리함수를 PLE로 구현하여라.
å= )1(mX å= )2,0(mY å= )3,1,0(mZ
)(
)(
310
20
1
ABBAABABmmmZ
AABABmmY
ABmX
+==++=++=
==+=+=
==
X
AB
m0
m1
m2
m3
(BA)
BA
BA
BA
Y Z
- 27 -한국기술교육대학교 전기전자통신공학부
3. PALv OR 게이트 입력은 고정되고
AND 게이트 입력만 프로그램
CDBDBCCDBAY
CDBABCCDBAY
DABCY
+++=
++=
=
2
1
0
x
x
x
x
Y0 Y1
x
x
x
x
0123456789101112131415
DB CA
Y2
AND Array(Programmable)
OR Array(고정)
X
예제 12-6 다음과 같은 4입력 4출력 PAL구조에서 주어진 논리함수를 실현
DCBADCADCBACABZ
DBCDBAY
BCDAXDCBACABW
+++=
++=
+=+=
x
x
W
X
Y
Z
A
B
C
D
AAND 게이트 입력
A B B C C D D W W
A A B B C C D D W W
- 28 -한국기술교육대학교 전기전자통신공학부
q PAL 읽는 방법
① 입력선의 수를 표시하며 정•부논리를 1조로 계산
② 기능분류 기호(래치의 유무)
③ 출력 래치가 있는 형인 경우, 출력단자 수를 표시한다.
④ 지연시간의 버전을 표시한다. 지연시간이 클수록 속도가 느리다
(기호없음>A>B>D의 순서임.
⑤ 소비전력의 형명임. 숫자가 없는 경우에 비해 2는 ½, 4는 ¼의 소비전력.
PAL 16 R 8 A 2 ① ② ③ ④ ⑤
- 29 -한국기술교육대학교 전기전자통신공학부
5. PLD 프로그래밍
v PLD 프로그램에 필요한 3가지 요소
Ø 프로그래밍 소프트웨어(논리 컴파일러)
Ø 컴퓨터
Ø 프로그래머(PLD 라이터)
YES
NO
START
논리회로설계
설계 입력
구문 에러
컴파일러 실행
설계 시뮬레이션
설계 에러
JEDEC 파일 생성
NO
YES
PLD 쓰기
END
edit
디버깅
PLD 프로그래밍 과정의 흐름도
- 30 -한국기술교육대학교 전기전자통신공학부
한 학기 동안 수고하셨습니다. ^ㅡ^