컴퓨터 구조

    [컴퓨터 구조] 인터럽트와 DMA를 이용한 I/O

    인터럽트를 이용한 I/O 인터럽트란? CPU가 어떤 프로그램을 순차적으로 수행하는 도중에 외부로부터 인터럽트 요구가 들어오게 되면, CPU는 원래의 프로그램 수행을 중단하고, 요구된 인터럽트를 처리해주기 위한 프로그램을 먼저 수행한다. CPU와 외부장치들 간의 상호작용을 위해서 필요한 기능이다. 위 인터럽트 메커니즘을 이용하면 I/O 동작이 I/O제어기와 I/O 장치에 의해 수행되는 동안 CPU는 다른 작업을 처리할 수 있게 되어, 시간을 유용하게 활용할 수 있다. 이러한 방식을 인터럽트-구동 I/O라고 부른다. 인터럽트-구동I/O의 동작 순서를 알아보자 CPU가 I/O 제어기에게 명령을 보낸다. 이후 CPU는 다른 작업을 수행한다. 제어기는 I/O 명령을 이용하여 I/O 장치를 제어한다. I/O 장치가..

    [컴퓨터 구조] 캐시 메모리

    [컴퓨터 구조] 캐시 메모리

    캐시 메모리 CPU와 주기억장치의 속도차이를 보완하기 위하여 그 사이에 설치하는 반도체 기억장치. 용어 정리 CPU가 원하는 데이터가 이미 캐시에 적재되어 있는 상태를 캐시 적중(cache hit)이라고 한다. 반대로, CPU가 원하는 데이터가 캐시에 없는 상태를 캐시 미스(cahce miss)라고 한다. 기억장체 엑세스들 중에서 캐시에 적중되는 비율을 나타내는 캐시 적중률(cache hit ratio) H는 다음과 같다. $$ H = \frac{캐시에 적중되는 횟수}{전체 기억장치 액세스 횟수} $$ 캐시 적중률은 CPU가 원하는 데이터가 캐시에 있을 확률이라고 말할 수 있다. 따라서 캐시에 없을 확률인 미스율은 1-H가 된다. 캐시아 사용되는 시스템에서 평균 기억장치 액세스 시간 Ta는 다음 식을 이..

    [컴퓨터 구조] 기억장치 모듈 설계

    [컴퓨터 구조] 기억장치 모듈 설계

    칩의 각 기억장소에 저장되는 비트 수가 일반적으로 컴퓨터의 단어 길이보다 적기 때문에, 한 번에 한 단어씩 엑세스할 수 있도록 하기 위해서는 여러 개의 칩들을 병렬로 접속해야 한다. 컴퓨터의 단어 길이가 N비트이고 기억장치 칩의 데이터 입출력 비트 수가 B개라고 가정하자. 한 번에 한 단어씩의 데이터 엑세스가 가능하도록 하기 위해서는 N/B개의 칩들로부터 동시에 B비트씩 엑세스 할 수 있어야 한다. 그렇게 하기 위해 기억장치 칩들을 병렬로 접속하는 방법을 알아보자. 병렬 접속 16x8bit RAM 16x4bit RAM 칩의 구성이다. 칩 2개를 병렬로 접속하여 한 번에 8비트씩 읽기/쓰기가 가능하도록 설계했다. 병렬접속을 위해서 모든 주소비트들(A0 ~ A3)을 두 칩에 공통적으로 인가하며, 칩 선택(C..

    [컴퓨터 구조] RAM & ROM

    RAM(Random Access Memory) 특징 1 앞에서 설명하였던 임의 엑세스 방식을 이용하는 반도체 기억장치이다. RAM에 저장된 각 단어들은 CPU가 전송하는 주소에 의해 지정되어 직접 엑세스된다. 따라서 데이터가 칩 내의 어떤 위치에 있든, 엑세스에 걸리는 시간이 동일하다. 특징 2 RAM은 읽고 쓰는 것이 모두 가능하다. 위 그림은 1K x 8비트 용량의 RAM에 대한 블록 다이어그램과 제어 신호들을 보여주고 있다. 이 칩의 용량은 1KB이며, 주소 비트는 1K = 2^10 이므로 10개가 필요하다. 그리고 데이터 입출력은 한 번에 8비트씩 이루어지기 때문에, 데이터 버스의 폭은 8비트가 된다. CS : 해당 칩을 선택하는 신호 RD + AD : 해당 칩의 AD(주소)에 해당하는 장소로부터..

    [컴퓨터 구조] 기억 장치 기본

    [컴퓨터 구조] 기억 장치 기본

    기억장치의 데이터 엑세스 유형 순차적 엑세스 기억장치에 저장된 정보들을 처음부터 순서대로 엑세스한다. 자기 테이프 저장장치가 이 방식을 이용한다. 카세트를 떠올리면 이해가 편하다. 특징으로는, 임의의 위치에 저장된 특정 정보를 읽기 위해서 그 위치에 도달할 때까지 앞부분의 테이프를 모두 통과해야 한다. 따라서 정보가 저장된 위치에 따라 엑세스 시간이 달라진다. 직접 엑세스 읽기/쓰기 장치가 각 레코드의 근처로 직접 이동한 후에 순차적 검색을 통해 최종 위치에 도달한다. CD, DVD 가 사용하는 방식이다. CD를 읽는 팔이 움직여서 데이터가 있는 트랙으로 이동한다. 그리고 CD가 특정 방향으로 회전하며 데이터가 있는 섹터로 이동한다. 따라서 현재 위치에서 원하는 섹터에 도달하기 위한 엑세스 시간이 가변적..

    [컴퓨터 구조] 제어 유니트 (Control Unit)

    [컴퓨터 구조] 제어 유니트 (Control Unit)

    제어 유니트의 기능 제어 유니트가 수행하는 주요 기능들은 아래와 같다. 명령어 코드 해독 명령어 실행에 필요한 제어 신호들의 발생 제어 유니트는 컴퓨터 프로그램을 구성하고 있는 명령어들을 해독하고, 그 결과에 따라 명령어 실행에 필요한 동작들을 수행시키기 위한 신호들을 발생하는 장치이다. 같은 말로, 명령어 사이클이 적절히 수행되도록 모든 동작들을 제어하는 장치이다. 명령어 사이클은 다음으로 이루어진다. 인출 사이클 간접 사이클 실행 사이클 인터럽트 사이클 각 사이클에서는 여러 개의 마이크로 연산들이 수행된다. 예를 들어, 인출 사이클에서 수행되는 마이크로-연산들을 다시 보면 아래와 같다. 프로그램 카운터에 저장되어있는 다음 명령어의 주소를 MAR로 이동시킨다. 메모리의 MAR 위치에 있는 데이터를 MB..

    [컴퓨터 구조] 컴퓨터 시스템 개요

    1. 컴퓨터의 기본 구조 컴퓨터는 프로그램 코드들을 정해진 순서대로 실행한다. 이 과정에서 데이터를 읽고(Read), 처리(Processing)하고, 저장(Store)한다. CPU 프로세서(Processor)라고 불리기도 하며, 컴퓨터의 두뇌이다. 컴퓨터의 성능은 CPU의 성능과 직결된다고 볼 수 있다. 32-bit, 64-bit 컴퓨터도 분류되는 이유도 CPU가 한 번에 처리할 수 있는 비트 수에 따라서 나눈것이다. 주기억장치(main-memory) 우리가 알고 있는 RAM과 ROM이 주기억장치에 속한다. 메인보드상에서 CPU와 가까이 위치하며 빠른 읽기, 빠른 쓰기 속도를 가진다. 하지만 가격이 비싸고 면적을 많이 차지하며 적은 저장 용량을 가진다는 단점이 있다. 따라서 CPU가 프로그램을 실행하기 ..

    [컴퓨터 구조] Control Unit

    [컴퓨터 구조] Control Unit

    [컴퓨터 구조] Instruction Set 컴퓨터의 Instruction set에 대해서 알아보자 Ex ) 3 + 6 = 9 Operands : '3', '6' Operator : '+' 명령어 사이클의 기본 상태 Diagram을 알아보자 Instruction fetch : 메모리에 있는 명령어를 가져오는 작업(Op.. hyeo-noo.tistory.com Instruction과 Operand설명 Micro-Operations이 무엇인지, 실제 control을 위해서 어떤 기법들이 사용되는지 알아보자 Micro-Operations 위 그림을 살펴보면 Instruction을 Fetch 해서 decoding 하고 Operand의 주소를 계산해서 Operand를 Fetch 하고(Multiple operand..

    [컴퓨터 구조] ILP & Superscalar

    [컴퓨터 구조] ILP & Superscalar

    ILP : Instrction Level Parallelism ILP의 2가지 방법 Superscalar : 1 Cycle 동안에 서로 다른 독립적인 2개의 연산을 동시에 수행하는 기술이다. Superpipeline : 한 클럭을 2개로 나누고, 나누어진 클럭에서 각각 서로 다른 연산을 수행하는 기술이다. ILP실행의 한계점 1. True Data Dependency ADD의 r1과 MOVE의 r1은 서로 의존적이다. pipeline에서의 타이밍을 맞추지 못하면 MOVE에서 잘못된 r1값(add가 되기 전의 r1)을 받아서 틀린 연산 결과를 낼 수 있다. 2. Procedural Dependancy if(~) ... else(~) ... 위와 같은 branch가 있을 때 branch이전과 branch 이..

    [컴퓨터 구조] RISC (feat. CISC)

    [컴퓨터 구조] RISC (feat. CISC)

    CICS구조를 비교 모델로 삼아 RISC구조에 대해서 알아보자. RISC(Reduced Instruction Set Computer) - 명령어가 축약된 컴퓨터 명령어 set이 매우 짧고 심플하다 CISC에 비해서 레지스터의 수가 매우 많다 (CISC : 8~16, RISC : 32~520) 소프트웨어적인 기술의 중요성이 크다 (컴파일러의 역할 증가(레지스터 최적화)) 명령어의 개수 : 60~100 (CISC : 200~300) 명령어의 크기 : 4 (CISC : 1 ~ 60) addressing mode : 1 (레지스터를 사용) (CISC : 4 ~ 22) CISC(Complex Instruction Set Computer)가 나오게 된 이유, 장점 과거에는 소프트웨어보다 하드웨어 기술이 상대적으로 ..