컴퓨터 구조

    [혼자 공부하는 컴퓨터 구조 + 운영체제] 컴퓨터 구조 간단 요약

    컴퓨터 구조- 컴퓨터 구조란?: 컴퓨터는 어떤 구조로 이루어져 있을까?=> 문제 해결 능력 상승, 성능/용량/비용 고려하면서 개발! - 컴퓨터 구조는 크게 2가지1) 컴퓨터가 이해하는 정보 : 데이터와 명령어 ex) 게임데이터 : 게임 그래픽, 게임 음악, 성우 보이스, 컷씬 등명령어 : 명령하는 언어게임 = 데이터 + 명령어 2) 컴퓨터의 4가지 핵심 부품 :중앙처리장치 (CPU) : 메모리의 명령어를 읽고 해석해서 실행ALU (산술논리연산장치) : 계산기제어장치 : CPU 전용 임시 저장 장치레지스터 : 제어 신호 (메모리 읽어!, 메모리에 써!) 라는 명령어를 해석하는 장치 주기억장치 (메모리 = Ram) : 명령어와 데이터를 저장, 실행되는 프로그램을 저장보조기억장치 (SSD, 하드디스크, USB..

    컴퓨터 구조 기말 정리

    명령어 : 컴퓨터 언어 * 레지스터를 나타내기 위해 MIPS 관례는 달러 기호 뒤에 두 글자가 따라 나오는 이름을 사용한다. 1. C나 Java의 변수에 해당하는 레지스터를 위해선 $s0, $s1 등을 사용 2. MIPS 명령어로 컴파일하기 위해 필요한 임시 레지스터를 위해서는 $t0, $t1 등을 사용 아래의 C 코드가 있다. g = h + A[8]; g는 레지스터 $s1, h는 레지스터 $s2, A의 시작 주소는 레지스터 $s3에 저장되어 있다고 하자. (base 레지스터 : $s3) 위의 코드를 MIPS 어셈블리 언어로 바꾸면 다음과 같다. lw $t0, 32($s3) # Temporary reg $t0 gets A[8] add $s1, $s2, $t0# g = h + A[8] 아래의 C 코드가 있..

    3. 캐시의 기본

    3. 캐시의 기본

    본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. 캐시의 구조 메모리 계층 구조에서는 상위 계층에서 먼저 데이터를 찾고 없다면 하위 계층에서 데이터를 요구하여 상위 계층에 채운다. 여기서 우리가 해결해야할 문제는 두가지다. 데이터가 캐시 내에 있는지 어떻게 알 수 있는가? 알 수 있다면, 어떻게 찾을 수 있는가? 각 워드가 캐시 내의 딱 한 장소에만 있을 수 있다면 워드가 캐시 내에 있는지 없는지를 바로 알 수 있다. 메모리의 각 워드에 캐시 내의 위치를 할당하는 가장 간단한 방법은 메모리 주소에 기반을 두고 할당하는 것이다. 이러한 캐시 구조를 바로 직접 사상( Direct mapped..

    2. 메모리 기술

    2. 메모리 기술

    본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다 컴퓨터의 3대 구성 요소 컴퓨터의 3대 구성 요소이다. 우리는 지금껏 Processor가 어떻게 명령어를 처리하고, 제어하는지 알아왔다. 5장에서는 그러한 명령어들을 갖고 있는 프로그램을 저장하고 있는 메모리가 어떻게 처리되는지 알아본다. 메모리 계층 구조 사실 생각해보면, 그냥 작고 빠른 레지스터,캐시,램 등을 엄청나게 많이 사용하면 메모리의 성능은 가하 급수적으로 빨라질 것이다. 그러나 데이터 저장소의 불변하는 진리 중 하나는 '작을수록 빠르고 비싸며, 클수록 느리고 싸다' 는 것이다. 그렇다면 우리는 어떻게 메모리를 크고 싸고 빠르게 ..

    11. 명령어를 통한 병렬성

    11. 명령어를 통한 병렬성

    Instruction-Level Parallelism (ILP) 파이프라이닝은 명령어들 사이의 병렬성을 이용한다. 이 같은 병렬성을 명령어 수준 병렬성 (Instruction-Level Parallelism) 이라고 한다. 이러한 명령어 수준 병렬성을 증가시키는 두가지 기본적인 방법이 있다. 1. 파이프라인의 깊이를 증가시킨다. 즉, 각 stage를 세분화 시키는 것이다. 파이프라인의 CPI가 1인 것은 일단 고정시키고, 대신 1 clock cycle이 걸리는 시간을 더 조금 걸리게끔 만드는 것이다. 기존의 5stage를 6stage로 나누고 각 단계들이 같은 길이를 갖도록 하면, clock cycle time은 5/6배 될 것이고 CPI는 그대로일 것이다. 2. 다중 내보내기(Multiple issue..

    10. 예외

    10. 예외

    Interrupts 외부 요인에 의해 발생되는 현상이다. 외부 요인이므로 프로그램의 실행과 비동기적으로 발생한다. 명령어엔 문제가 없는 것이므로 파이프라인에 있는 명령어를 전부 완료한 후에 OS interrupt handler를 호출한다. Trap 내부 요인에 의해 발생되는 현상이다. 명령어에 의해 발생되는 오류이므로, 명령어를 중간에 멈추고 OS trap handler를 호출한다. Interrupts 까지 더불어서 Exception이라고 한번에 칭하기도 한다. Exception 예외가 일어나는 오류 종류 입출력장치 요구 - 인터럽트 사용자 프로그램의 운영체제 호출 - 예외 산술 오버플로 - 예외 정의 안 된 명령어 사용 - 예외 하드웨어의 오동작 - 예외 또는 인터럽트 예외 처리 방법 1 예외가 일어났..

    9. 제어 해저드

    9. 제어 해저드

    Control Hazards 분기 명령어 Conditional branches (beq, bne) Unconditional branches (j) Branch Decision 우리가 지금껏 데이터패스를 배우길 분기 명령어의 분기는 EX stage에서 판단된 후에 MEM stage에서 일어났다. 즉, 다음 3cycle 동안 오는 명령어는 모두 stall 되어야만 한다. 이 3cycle은 너무 성능을 느리게 하기 때문에 다른 방법이 필요한데, Branch decision 하드웨어를 ID stage로 옮겨오고, rs rt값을 비교해주는 compare 하드웨어를 달아서 브랜치 판단을 하는 것이다. 그러나 이렇게 하드웨어의 지원을 받아도, 판단이 ID에서 일어나 이때 다음 명령어는 IF stage에서 실행 중이므..