이 글은 www.youtube.com/watch?v=d5GtCwS6KsM&list=PLc8fQ-m7b1hD4jqccMlfQpWgDVdalXFbH&index=21&t=819s 보고 공부한 내용입니다.
컴퓨터가 동작하는 경위
ex)
라는 명령어를 한다로 하자.
timing = t4에서 시퀀스 카운터를 0으로 만드는 동작을 한다고 한다.
그림을 보고 이해해보자.
IR레지스터가 있으면 컴퓨터 명령어가 들어가게 된다.
처음 비트는 직접, 간접 주소를 판별하는 비트이고
다음 3개의 비트는 명령어 비트이다. 이걸3x8디코더를 사용한다. 3개넣으면 8가지 명령어를 쓸 수 있다. 3번째 출력이 1이되는 경우를D3가 1이된다.
T4는 무엇일까? 컴퓨터는 명령이 순차적으로 진행하기 위해서 타이머를 사용한다.
타임시작은T0로 다음을T1이라고 한다.
이걸 타이밍이라고 한다.
밑에 SC(sequence counter)는 4비트로 시작하기 때문에 0000~ 1111이 된다. 1111로 가면 다시 0000으로 된다.
4비트의 출력을4x16 디코더로 넣으면T0 ~ T15까지의 결과가 나올 것이다.
클럭을 사용해 일정한 시간마다 카운터가 올라간다. 전부 일정한 시간에 올라간다.
이것을 타임 변수라고 한다.
D3가 1인경우 = 011인경우
AND
T4가 1인경우 =>0100인 경우
하면 결과Y를SC의clear에 연결한다.
Control logic gates가 빨간선의 내용을 포함하고 있는 것이다.
이것이 제어장치이다.
cpu는 연산장치(alu), 기억장치(레지스터), 제어장치로 구성되어 있다.
이 타이밍 다이어그램이라고 한다.
어느 때에 어느 동작을 하느냐?
●명령어 사이클
모든 명령어는 명령어를 실행하는 단계가 있다.
이 단계는 명령어 사이클이라고 한다.
1. 메모리에서 명령어 가져오기(fetch)
어디로? ir레지스터로
(Code segment에서 기계어 명령어를 가져온다. 이걸 ir레지스터에 가져온다.)(fetch)
2. 명령어 디코딩 3비트 오피코드를 해석해야하니깐
3. 유호주소 계산 (주소 필드에 있는 값이 실제 피연산자를 찾기)
4. 명령어 실행
명령어 실행이 끝나면 다시 다음명령어를 메인 메모리에서 가져온다.
위 단계를 명령어 사이클이라고 한다.
fetch – 명령어 가져오기
지금 가져와야될 명령어를 기억하고 있는 레지스터가 PC(Program count) 이다.
pc에서 값을 가져와야 하니깐s2,s1,s0가010이 되어야 한다. 2번 게이트가 열리고 pc에 있는 값이 튀어 나온다. 이값이 AR레지스터로 가야한다.
AR 레지스터에 넣어야 하니 AR의 load값을1로 만든다.
T0일 때 일어나야 하는 일이니깐 T0은 이 때 1이다.
T1일 때AR 메모리의 값을 읽어가지고 메인 메모리에 넣어야 한다.
AR에 주소가 들어가면 메모리에 AR에 들어있는 주소의 값이 출력으로 메모리에 저장된다.
IR로 가야하니깐 t1으로 load를 연결시켜준다. t1이 1이면 load가 된다.
PC레지스터는 다음 명령어의 주소를 가리켜야 한다.
IR에 명령어가 들어갔으면 디코딩을 해야 한다.
T2일 때IR의 12, 13, 14가지고 디코딩을 하고
0~11까지는 AR(address register)로 보낸다. AR은 12비트이고 IR은 16비트이다.
어떻게 들어갈까? 버스가 12개의 선만 연결되있기 때문에 12개의 값만 들간다.
IR의15번 째는 I라는 플립플롭에 넘겨준다.
1,2번 사이클은 반드시 하게 된다. 이걸 fetch 사이클 이라고 한다.
위 그림같은걸 제어장치 라고 한다.
'Computer Science > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터 구조] 입출력과 인터럽트 (0) | 2021.01.20 |
---|---|
[컴퓨터 구조] -명령어 사이클 (0) | 2021.01.19 |
[컴퓨터구조] 기본 컴퓨터 레지스터 (0) | 2021.01.17 |
[컴퓨터 구조] 컴퓨터 동작 (0) | 2021.01.15 |
[컴퓨터구조] 레지스터 전송과 마이크로 연산 (0) | 2021.01.14 |