1장 마지막에 했던 2-bit counter와 다른 4-bit counter
A(0)이 0에서 1로 바뀌는 경우 : 외부에서 1이 들어오는 경우
A(1)이 0에서 1로 바뀌는 경우 : A(0)가 1이었을 때, 그리고 외부에서 1이 들어왔을 때
A(1)이 1에서 0으로 바뀌는 경우 : A(0)가 1이었을 때, 그리고 외부에서 1이 들어왔을 때
A(2)이 0에서 1로 바뀌는 경우 : A(1), A(0)이 둘다 1이고 외부에서 1인 경우
A(2)이 1에서 0으로 바뀌는 경우 : A(1), A(0)이 둘다 1이고 외부에서 1인 경우
A(3)가 0에서 1로 바뀌는 경우 : A(2), A(1), A(0)이 모두 0이고 외부에서 1이 들어온 경우
A(3)가 1에서 0으로 바뀌는 경우 : A(2), A(1), A(0)이 모두 0이고 외부에서 1이 들어온 경우
-> 우리가 사용하는 JK F/F 조건들 4가지 중 실제로 사용하는 건 2가지밖에 없음
0/0 or 1/1, 위에 바뀌는 경우만 봐도 외부와 전 비트에 존재하는 비트값이 1일 때만 값의 변화가 생김
만약 6비트 counter를 만들고 싶으면 J/K F/F 2개와 AND 게이트가 이루는 Stage 2개를 추가해주기만 하면 된다.
parallel load : 외부값을 F/F에 들어가도록 함
synchronous clear : F/F안에 들어있는 모든 값을 0으로 초기화(k단자에 1들어가면 됨)
* 회로의 구조
외부에 Clear Load 단자 1개 존재
Parallel load 수행을 위해 시그널 존재
Increment는 count기능을 수행 : 들어오는 입력값이 0이냐 1이냐에 따라 1이면 count기능을 수행
< 검즘 >
Clear, Load, Increment 모두 0이면 어떻게 해도 J단자와 K단자 모두 0이 들어갈 수 밖에 없어 Q(t+1)은 Q(t)와 같다
Increment가 1이면 J/K단자 모두 1의 값이 들어가게 된다.
Load단자가 1이면 K단자에 1을 물린다. 따라서 다음 상태 0이 된다, 만약 I(0)이 1이라면 J는 1, K는 0이 물려진다.
따라서 다음 상태는 1이 된다.
Clear가 1이라면 J는 0, k는 1
Word단위로 읽기 쓰기 작업이 이루어진다.(=I/O는 워드 단위로 이루어진다) 시스템마다 워드 단위가 다름
만약, 4바이트 word였다? 32비트 정보가 parallel하게 읽기 모드에서 읽혀지고, 쓰기 작업에서는 메모리 안으로 써서 들어간다. DRAM의 경우는 바이트가 아닌 Bits이다.
전체적인 크기는 Word 개수 x 한 word가 몇 비트로 구성이 되느냐
ex) 한 Word가 4바이트로 구성,(즉 32비트) 32비트 x Word 개수
만약 0번째부터 15번째까지 주소를 가지려면 4개의 Address Line을 가져야한다.
* 메모리 유형
RAM - Random Access Memory. 주소값을 받으면 한 번에 접근해서 읽기나 쓰기가 가능함
RAM은 DRAM(Dynamic) / SRAM(Static)으로 구분
-> RAM은(volatile)의 특성을 가진다. 전기적 특성의 영향을 받는다 ex) 정전되면 정보가 다 날아감
ROM은(non-volatile) 전기적 특성 x
mask ROM : 공장에서 메모리 안에 들어갈 정보가 모두 쓰여진 다음에 출하
PROM(programmable ROM) : 한 번은 정보를 삽입 가능 (연구실 내 랩실에서 많이 사용됨)
EPROM(Erasable PROM) : 지울 수 있는 PROM(특수한 경우에만, 지우기 위해서는 UV라는 특수한 장치 사용)
EEPROM(Electrically EPROM) : 전기적은 신호로 EPOM의 정보를 지울 수 있다
① 램의 경우 메모리 안에 어디에 위치해있든 똑같은 시간 안에 접근 가능-> 읽기 쓰기 작업 가능, 이것과 반대되는 개념이 Sequential access(순차적 접근), 대용량의 백업을 받기 위한 저장공간 ex) 테이프, 뒤에 있는 정보에 접근하기 위해 앞에 있는 테이프를 모두 감아줘야함(이런 방식)
< 그림 >
워드에 개수가 몇개냐에 따라서 각 워드마다 주소 공간이 할당. 만약 2^k개 word가 있다면 k개 address line존재
전체적인 메모리의 크기 : n * 2^k, n은 워드의 길이(n비트)
우선, 쓰기 작업과 읽기 작업이 있을텐데 쓰기 작업이 어떻게 이루어지는지보면 우선, 주소값을 전달을 해줘야한다.
그 다음에 저장 시켜야 하는 데이터가 input line을 통해 전달이 되고, 쓰기 작업을 행하겠다는 Activate write strobe가 와야함(신호), 그럼 이제 메모리에 k비트 짜리 address라인을 통해 전달된 위치에 쓰기 작업이 이뤄짐
읽기 작업은 역시 마찬가지로 몇 번지부터 읽어라라는 Address 라인을 통해 주소값이 전달이 되고 그 다음에는 쓰기 작업과 똑같이 Activate read strobe 신호가 켜지면, 메모리 안의 정보를 읽어 밖으로 내보낸다.
역시 워드의 크기가 n비트짜리 했으니 word단위로 쓰기 / 읽기 작업이 이루어진다.
② ROM : 공장에서 이미 다 정보가 쓰여진 채로 출하되므로 일반적으로 읽기만 가능, 결국 읽기작업만 가능
마찬가지로 주소값 전달해주면 그 위치에서 읽고 밖으로 정보를 내보낸다.