[컴퓨터구조] #5 프로세서

2023. 4. 15. 20:06·전공/컴퓨터구조
728x90
반응형

샘플 MIPS 프로세서 구조

메모리 참조 명령어: lw(load doubleword), sw(store doubleword) 

산술/논리 명령어: add, sub, AND, OR, slt 

조건부 분기 명령어: beq(branch equal), j(jump)

 

PC(Program Counter)

- 메모리상의 현재 프로그램 실행위치(명령어 위치)

Mux(Multiplex: 다중화기)

- Data selector

- 여러 개개 -> 하나

Demux(De-multiplex:역다중화기)

- 하나 -> 여러 개

 

명령어 구현

  1. PC를 프로그램이 저장되어 있는 메모리에 보내서 메모리로부터 명령어를 가져옴
  2. 읽을 레지스터를 선택하는 명령어 필드를 사용하여 레지스터를 읽음

 

MIPS 부분집합의 기본적 구현

MIPS 부분집합 구현의 추상적 개관, 주요 기능 유닛과 연결

프로세서 내의 데이터 흐름/ 명령어 실행에 중요한 두 가지 측면이 빠져있음

더보기

그림에서는 서로 다른 근원지에서 나온 데이터가 같은 유닛으로 가는 곳이 몇 군데 있음

다수의 근원지 중 하나를 선택하여 그것만을 목적지로 보내는 구성 요소를 추가하여야 함 -> 멀티플렉서(multuplexor) 이용

멀티플렉서(multuplexor): 제어선의 값에 따라 여러 개 입력 중 하나를 선택하는 소자

 

어떤 유닛들은 명령어 종류에 따라 다르게 제어되어야 하는데 이 부분이 빠져있음

여러 가지 연산 중 하나를 수행 -> 제어선의 명령어 필드 값에 따라 정해지며 제어선이 연산을 통제

이전 그림에서 제어선과 필요한 멀티플렉서 3개를 추가한 그림

- 제어 유닛(Control unit) -> 명령어를 입력으로 받아 기능 유닛들과 두 멀티플렉서의 제어선 값 결정

- 3번째 멀티플렉서는 PC + 4와 분기 목적지 주소 중 어느 것을 PC에 써야 할지 ALU의 Zero출력으로 제어

 

데이터패스(Datapath) 요소

조합소자와 상태소자로 이루어짐

- 조합소자: 출력이 입력에 의해서만 영향받음

  •  AND, OR, NOT, NOR,...

 

-상태소자: 값(0/1)을 기억하는 상태를 가지는 소자

  • 명령어/데이터 메모리, 레지스터,...
  • D 플립플롭(Flip-flop)
  • 최소 2개의 입력과 1개의 출력

 

- 논리회로: 조합소자만으로 구성된 회로

- 순차회로: 상태를 포함하는 combination circuit

 

조합소자

AND

Adder

Multiplexer

ALU(Arithmetic Logic Unit)

 

동기식/비동기식

H/W에서의 의미 - 클럭을 공유하는가? 아닌가?

S/W에서의 의미 - 함수를 호출하고 리턴할 때까지 기다려야 하는가? 아닌가?

 

동기식 시스템

- 같은 클럭소스를 공유하는 시스템

-대표적으로 컴퓨터

  • 하나의 메인보드의 클럭이 CPU, GPU, 메모리, SSD, HDD로 들어감
  • 서로 다른 클럭속도는 분주(divide)되어 들어감
  • 군대의 행진과 같은 형태로 동작
  • 주로 짧은 거리에서 동작 - 고신뢰도(보내면 받았다고 전제)

 

비동기식 시스템

- 같은 클럭을 사용하지 않는 형태의 시스템

- 대표적으로 인터넷(TCP/IP)

  • 여러 시스템이 연결된 네트워크
  • 주로 먼 거리라 신뢰도가 낮음
  • 받았는지 안 받았는지(ACK/NACK)를 확인 필요

 

클러킹 방법론

에지 구동 클러킹(edge-tiggered clocking)

- Rising edge / falling edge 중 하나에서만 동작하도록 설계

- 클럭(활성화 클럭 에지) 신호와 쓰기 신호가 인가되어야 상태값 변경 가능

- 클럭이 한 사이클 이내에 모든 회로의 전파가 완료될 정도로 충분히 길어야 함

 

순차회로

Register: stores data in a circuit

- 클럭 신호를 사용하여 저장된 값을 업데이트할 시기를 결정
- Edge-triggered: Clk가 0에서 1로 변경될 때 업데이트

Register with control

- 쓰기 제어 입력이 1인 경우 클럭 에지에서만 업데이트됨
- 나중에 저장된 값이 필요할 때 사용됨

 

728x90
반응형

'전공 > 컴퓨터구조' 카테고리의 다른 글

[컴퓨터구조] #7 단일 사이클 구현 2  (0) 2023.04.23
[컴퓨터구조] #6 단일 사이클 구현 1  (0) 2023.04.23
[컴퓨터구조] #4 컴퓨터 연산  (0) 2023.04.15
[컴퓨터구조] #3 명령어 종류, 기능과 형식  (0) 2023.04.15
[컴퓨터구조] #2 성능평가  (0) 2023.04.15
'전공/컴퓨터구조' 카테고리의 다른 글
  • [컴퓨터구조] #7 단일 사이클 구현 2
  • [컴퓨터구조] #6 단일 사이클 구현 1
  • [컴퓨터구조] #4 컴퓨터 연산
  • [컴퓨터구조] #3 명령어 종류, 기능과 형식
dev_ares
dev_ares
대학에서 컴퓨터공학을 전공하고 있는 학생입니다.
    반응형
    250x250
  • dev_ares
    노트
    dev_ares
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • IT 트랜드 (2)
      • 백엔드 (18)
        • Java + Spring (8)
        • Kotlin + Spring (5)
        • 백엔드 (5)
      • 프론트엔드 (1)
        • React (1)
      • 대외활동 (17)
        • 42서울 (17)
      • 백준 (6)
        • Java (2)
        • C++ (3)
      • 전공 (121)
        • 객체지향프로그래밍 (17)
        • 자료구조 (23)
        • 리눅스시스템관리 (16)
        • 컴퓨터구조 (25)
        • 네트워크 (25)
        • 데이터베이스 (15)
        • 기타 전공 (0)
      • 프로그래밍 언어 (18)
        • Java (5)
        • Swift (4)
        • C++ (1)
        • Kotlin (8)
      • 기타 (4)
      • 공군 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    반복자
    자료구조
    단일 사이클
    데이터패스
    명령어
    사설 문제
    백준
    C++
    리눅스
    42서울
    자바
    코틀린
    메모리 계층 구조
    컴퓨터구조
    컴공 포트폴리오
    추가 문제
    오블완
    상속
    티스토리챌린지
    컴퓨터 구조 및 설계
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
dev_ares
[컴퓨터구조] #5 프로세서
상단으로

티스토리툴바