본문 바로가기

Computer Science/Computer Architecture

(24)
[Computer Architecture] 해저드 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 해저드 선행 명령어와 후행 명령어의 중첩/실행이 원활하게 이루어지기 어려운 경우가 존재한다. => m단계 파이프라이닝에 대한 이론적 (거의) m배 성능 향상은 실제로는 불가능하다. = 다음 명령어가 다음 클럭 사이클에 실행될 수 없는 상황 = 명령어나 데이터가 준비되지 않아서 파이프라인을 멈춰야 하거나 새로운 명령어를 파이프라인에 투입할 경우 잘못된 결과가 초래되는 모든 상황이나 조건 해결 방법? => 해저드 원인이 사라질 때까지 파이프라인에 명령어 투입을 멈춰야 한다. - 파이프라인 중지 (Pipeline Stall) or 파이프라인 버블 (Pipeline Bubble) 구조적 해저드 = 파이프라인에서 실행 중인 2개 이상의 ..
[Computer Architecture] 파이프라이닝 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 파이프라이닝 개요 세탁 시스템을 통해 쉽게 이해할 수 있다. (or 소화기관) - 전체 세탁 흐름 = 하나의 프로그램 - 전체 세탁하는데 걸리는 시간 = 프로그램 실행 시간 -> 성능 - 세탁물 1개 = 명령어 1개 하나의 일을 수행하는데 걸리는 시간이 각각 다를 경우 기다리는 시간이 발생한다. 위 그림에서 (기본) 세탁물 수가 4개일 경우, 병행 방식은 순차 방식에 비해 약 1.7배 빠르다. - (90 × 4) ÷ (90 +40 × 3) = 1.7 - 40 × 3: 첫 세탁을 제외하고, 두 번째부터 가장 길게 걸리는 마지막 일만큼 기다려야하기 때문에 40분이 지날 때마다 세탁 하나가 완료된다. 세탁물 수가 10개일 경우, 병행..
[Computer Architecture] 데이터 경로 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 데이터 경로 (Data Path) = CPU가 명령어 실행을 위해 데이터를 경유시키는 경로 (순서화된 단계) - 데이터: 명령어 데이터, 명령어에 따른 피연산자 / 결과 데이터 ex) 세탁 시스템의 데이터(세탁물) 경로: 세탁 - 탈수 - 건조 1. 다음에 수행할 명령어(데이터) 주소를 계산한다. (연산장치, PC) 2. 데이터를 처리하기 위해 메모리에서 데이터를 읽거나 저장한다. (Read, Write) 3. CPU 내부의 고속 메모리인 레지스터 파일에 데이터를 일시적으로 보관하고, 연산장치를 통해 산술연산과 논리연산을 수행하고, 그 결과값을 레지스터 파일 / 연산장치에 보관한다. ..
[Computer Architecture] 데이터 연산 (picoMIPS) + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다.CPU의 연산장치 (ALU, Arithmetic & Logic Unit)+,- 등 산술 연산, AND, OR 등 논리 연산, Shifter, 보수기 등이 포함된다. - 연산: ÷ 2^n ex) add $5 $3 $ 4: 레지스터 3에 저장된 데이터와 레지스터 4에 저장된 데이터를 더하고 레지스터 5에 저장 => 0000 011 100 101 010 (순서 기억) 1. OpCode와 fn을 통해 명령어를 해독한다. - ALU에 + 제어신호를 전달한다. => R-형식 명령어 이므로 3bit(source), 3bit(target), 3bit(destination) 레지스터의 주소임을 인식한다. 2. source, target 레지스터 ..
[Computer Architecture] 디지털 논리 회로 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 디지털 논리 회로 데이터 / 연산의 HW 구현 데이터: 전기 신호의 흐름을 기호화한 것이다. => 하나의 전기 신호는 0, 1로 표현하고, 여러 개를 합쳐서 표현할 수 있는 데이터의 범위를 확장한다. 연산: 논리 게이트(Logic gate)를 기본 단위로 하여 해당 연산 결과를 구할 수 있는 디지털 논리회로를 구축한 것이다. 논리 게이트 논리 회로의 기본 HW 소자(구성 단위)이다. 입력 단자의 값들에 따라 해당 논리 게이트(연산)의 논리 값을 출력 단자의 값(0, 1)으로 출력한다. - 기본 논리 게이트 (연산): AND, OR, NOT, XOR 조합 논리 회로 (Combinational) 현재의 입력값에 의해서만 출력값이 결..
[Computer Architecture] 데이터 표현 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 데이터 종류 수치 데이터 => 컴퓨터 내/외부에서 사용 비수치 데이터 => 컴퓨터 외부에서 사용 데이터 형식 컴퓨터가 지원하는 데이터의 표현 방식이다. (약속) = 컴퓨터가 제공하는 명령어 집합으로 연산할 수 있는 정보의 표현 (피연산자 뿐 아니라 opcode 역시 포함된다.) ex) atomic: 정수(Integer), 불리언(Boolean), 문자(Character), 실수(부동 소수점 수 형태) complex type: 문자열(String), 배열(Array), 벡터(Vector), 스택(Stack), 큐(Queue) 그러나 모든 컴퓨터(하드웨어)가 모든 데이터 형식을 지원하지 않는다. - 모든 데이터 형식을 지원하면 하드..