[컴퓨터 구조] 프로세서
숭실대학교 하석재 교수님의 2022-1학기 컴퓨터 구조 강의를 정리 및 재구성했다.
[샘플 MIPS 프로세서 구조]
[명령어]
- 메모리 참조 명령어
-lW(load doubleword), sw(store doubleword)
-산술/ 논리 명령어
-add, sub, or, slt
-조건부 분기 명령어
-beq(branch equal), j(jump)
[요소]
-PC(Program Counter)
: 메모리상의 현재 프로그램의 실행 위치(명령어 위치)
-Mux(Multiplex: 다중화기, data selector)
: 제어선의 값에 따라 여러 개의 입력 중에서 하나를 선택하는 소자
-Demux(De-multiplex: 역 다중화기)
: 하나의 통신 회선으로 데이터를 전송 받은 것을 여러 개의 회선으로 나누는 장치

[데이터 패스 (Datapath) 요소]
조합 소자(combinational element)
: 데이터 값에 대해 연산을 수행사는 소자로, 출력이 현재 입력에 의해서만 결정된다.
-같은 입력이 주어지면 항상 같은 출력을 낸다.
-AND, OR, NOT, NOR ...


상태 소자(State Element)
: 값(0/1)을 기억하는 상태(state)를 가지는 소자
-컴퓨터의 전원 플러그를 빼더라도 플로그를 빼기 전의 값을 상태 소자에 넣어 주면 전과 똑같은 상태에서 다시 시작할 수 있다.
-상태 소자들을 저장했다가 다시 복원한다면, 컴퓨터가 꺼지지 않았던 것과 마찬가지가 된다. 따라서 이 상태 소자들이 컴퓨터를 완전히 특징짓는다고 볼 수 있다.
-최소 2개의 입력과 1개의 출력이 필요하다(데이터와 클럭이 필요한데, 클럭은 데이터 값이 소자에 기록되는 시점을 결정한다.)
-명령어/ 데이터 메모리, 레지스터, D플립플롭 ...
논리 회로(Combinational Circuit)
: 조합 소자로만 구성된 회로이다.
- 메모리를 가지고 있지 않는다.
순차 회로 (Sequential Circuit)
: 상태를 포함하는 Combinational Circuit이다.
-메모리를 가지고 있다.
[동기식 vs 비동기식]
-H/W에서의 의미 : 클럭을 공유하는가? 하지 않는가?
-S/W에서의 의미: 함수를 호출하고 리턴할 때까지 기다려야 하는가? (blocked인가 아닌가?)
동기식 시스템 (Synchronous)
: 같은 클럭소스(clock source)를 공유하는 시스템.
-하나의 메인보드의 클럭이 CPU, GPU, 메모리, HDD로 들어가 공유됨.
-서로 다른 클록속도는 분주(divide)되어 들어간다.
- 군대의 행진과 같은 형태로 동작
-주로 짧은 거리에서 동작 (고신뢰도, 보내면 받았다고 전제)
-대표적으로 컴퓨터

비동기식 시스템 (Asynchronous)
: 같은 클럭을 사용하지 않는 형태의 시스템
-여러 시스템이 연결된 네트워크
- 주로 먼거리에서 동작(신뢰도가 낮음, 받았는지 안 받았는지(ACK/NACK)를 확인필요)
-대표적으로 인터넷(TCP/IP)

[클러킹 방법론 (Clocking Methodology)
- 에지 구동 클러킹 (Edge-triggered Clocking)
- Rising Edge/ Falling Edge 둘 중 하나에서만 동작하도록 설계
- EX) SDRAM: 둘 중 하나만 동작 / DDR (Double data rate) SDRAM : 둘 다 동작, 속도 2배 더 빠름)
- 클럭 (활성화 클럭 에지) 신호 (=rising edge인가) 와 쓰기(write) 신호(=쓰기 신호가 1인가) 가 인가되어야 상태 값 번경 가능하다.
-전제조건 : 클럭이 한 사이클 이내에 모든 회로의 전파가 완료될 정도로 충분히 길어야 한다.


[순차 회로(Sequential Elements)]
:레지스터가 회로 안에 데이터를 저장한다.
- 클럭 신호를 통해 언제 저장 값을 업데이트 할 지 결정한다.
- Edge-triggered: 클럭이 0에서 1로 변할 때 (edge일때) 값을 업데이트 한다.

[쓰기 신호와 함께 등록이 될 경우]
: 클럭 에지(Clock Edge) 중에서 쓰기 신호가 1일 때 값을 업데이트 한다.
