D 플립플롭
- R-S 래치에 인버터를 추가하여 같은 값이 입력 되지 않게 고친 플립플롭
메모리 셀
- 1비트 래치/플립플롭
램(RAM)
- 플립플롭을 이어 만든 것
- SRAM : 트랜지스터로 만든 래치 모음
- DRAM : 캐패시터와 트랜지스터를 이어 만든 것
D 플립플롭 1바이트 램
- 입력 CLK를 스위치 1개를 연결하여 워드라인(Word Line : WL)이라 하고
- 입력 D에 연결한 스위치 8개를 입력이라 한다.
=> 1바이트를 1워드로 묶어 일괄적으로 클록 공금
=> 0 ~ 255까지 입력 가능
1바이트 램에 이진수 10000110 저장 순서
MSB와 LSB
- 디지털 회로에서 1비트 이상 데이터 처리시 어느 신호선이 높은 자리인지 낮은자리인지 정해야 함
- MSB(Most Significant Bit) : 가장 높은 비트 위치
- LSB(Least Significant Bit) : 가장 낮은 비트 위치
=> 10000110에서 LSB는 오른쪽 끝 0, MSB는 왼쪽 끝 1
메모리 주소
- 1바이트 크기 램에 데이터를 쓰기 위해 8개 스위치 사용, 2바이트의 경우 스위치 16개, 출력 16개 필요
- 1KB 램의 경우 8192개(2^13) 스위치 필요 -> 1MB는 스위치 100만개 필요 => 불가능
<->
램의 특정 주소에 데이터를 쓰거나 읽기
1. 램 영역을 1바이트로로 나누고 주소 지정
2. 그 주소를 찾아 해당 주소의 메모리 셀이 동작
1KB 램의 메모리 주소
- 8,192개의 메모리 셀을 8개로 묶음 -> 1바이트 씩 주소 할당 -> 0 ~ 1023까지 주소 사용 가능
D 플립플롭 메모리 셀 회로
- D 플립플롭 회로에 입출력, 셀 선텍, 읽기/쓰기 동작 선택 단자를 추가 한 회로
- SEL에 0이면 값 저장 상태 유지
- SEL이 1이면 읽기/쓰기 동작
- RW : 0 -> 저장된 값 출력
- RW : 1 -> 입력된 값 저장
메모리 셀 기호
8바이트 램 구성
- 메모리 셀이 가로 8개 세로 8개 총 64개 구성
- 주소는 0 ~ 7까지. 이진법으로 표현 시 3바이트 필요 -> 어드레스 디코더 입력(a1, a2, a3)이 3개
- 주소 신호선은 각 메모리 셀 선택 단자에 연결
- 1바이트 표현에 8개의 입출력 필요 -> 입력 스위치 8개/ 읽기 버퍼 8개
* DI(data input), DO(data output)
어드레스 디코더
- 램 주소를 지정할때 입력 스위치 갯수를 줄이기 위해 사용
- 현재 주소가 7개 뿐이므로 출력 7개(0 ~ 7), 입력 3개(2^3) 총 10개의 스위치로 주소 지정 가능
- 이 경우 3-입력-8-출력 디코더
8바이트 램 0x2번지에 6쓰기
- 6은 0000 0110
DI 0 1 2 3 4 5 6 7
-> 0 1 1 0 0 0 0 0
8바이트 램 0x2번지 값 출력(읽기)
플립플롭 메모리
- SRAM이나 DRAM 처럼 대용량 주기억장치로 쓰기에는 크고 복잡
-> CPU 내부 레지스터에 사용
SRAM, DRAM
- SRAM : 트랜지스터로 래치 만듬
- DRAM : 캐패시터로 만듬
휘발성 메모리
- D 플립플롭, SRAM, DRAM
- 크기가 큰 순 : D 플립플롭 > SRAM > DRAM
- DRAM은 캐패시터를 사용하여 D 플립플롭이나 SRAM보다 느리고 전력 소모가 큼 -> 대용량 주기억 장치로 사용
- SRAM -> 캐시 매모리
- D 플립플롭 -> 레지스터
전자석 -> 릴레이 -> 인버터 -> (+피드백 연결) -> 오실레이터
트랜지스터 -> 논리 게이트 -> R-S 래치 -> R-S 플립플롭 -> J-K 플립플롭
-> 1바이트 램 -> 8 바이트 램 -> 8바이트 플립플롭 램 + 어드레스 디코더 + 쓰기 스위치 + 읽기 버퍼/SRAM/DRAM