CS/Computer Architecture

    [컴퓨터 구조] 다중 프로세서 시스템 #2

    [컴퓨터 구조] 다중 프로세서 시스템 #2

    [컴퓨터 구조] 다중 프로세서 시스템 #1 MIMD 조직의 다중프로세서 구조에 대해서 알아보자. MIMD의 밀결합 방식이란? 주기억장치가 어느 한 프로세서에 속하지 않고, 모든 프로세서들에 의해 공유되는 방식을 의미한다. 프로세서는 분 hyeo-noo.tistory.com MIMD의 소결합 방식이란? 프로세서들이 기억장치를 공유하지 않고, 각 프로세서가 자신의 기억장치를 별도로 가지고 있는 방식이다. 소결합 방식을 사용하는 다중 프로세서 시스템을 분산-기억장치 시스템 구조라고 부르겠다. 분산-기억장치 시스템 분산-기억장치 시스템의 특징은 다음과 같다. 각 프로세서가 자신의 기억장치를 별도로 가지고 있기 때문에, 프로세서가 실행할 프로그램이 컴파일 단계에서부터 별도로 작성되어 각 프로세서의 기억장치로 적재..

    [컴퓨터 구조] 다중 프로세서 시스템 #1

    [컴퓨터 구조] 다중 프로세서 시스템 #1

    MIMD 조직의 다중프로세서 구조에 대해서 알아보자. MIMD의 밀결합 방식이란? 주기억장치가 어느 한 프로세서에 속하지 않고, 모든 프로세서들에 의해 공유되는 방식을 의미한다. 프로세서는 분산되어있지만 기억장치를 공유하기 때문에 각각의 프로세서가 기억장치라는 매개체를 통해서 밀접하게 연관되어 있다는 뜻의 밀결합 방식이라고 생각된다. 밀결합 방식을 사용하는 다중 프로세서 시스템을 공유-기억장치 시스템 구조라고 부르겠다. 공유-기억장치 시스템 이 시스템의 장점은 다음과 같다. 프로세서들이 공통으로 사용하는 데이터들이 공유 기억장치에 저장되므로, 별도의 프로세서 간 통신 메커니즘이 필요하지 않다. 프로그램 실행시간 동안에 각 프로세서들이 처리할 작업들을 동적으로 균등하게 할당할 수 있기 때문에, 프로세서 이..

    [컴퓨터 구조] 인터럽트와 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비트 2진수 2개를 더한 합과 올림수를 구하는 하드웨어 1 + 1 => 결과값 1과 올림수 1을 출력한다. 전가산기 1비트 2진수 2개와 이전 단게의 올림수 1개, 총 3개의 이진수를 더하여 합과 올림수를 구하는 하드웨어 이전에 올라온 비트 1 + (0 + 1) 현재 위치의 비트 => 결과값 1과 올림수 1을 출력한다. 전가산기는 올림수 비트를 전송하는 선에 의해 서로 연결된다. 따라서 많은 비트를 연산하기 위해서 같은 방법으로 전가산기들을 계속 연결해 구성할 수 있다. 병렬 가산기 상태 레지스터 V : 오버플로우(oVerflow) 비트 (1인경우 오버플로우가 발생했다는 뜻이다) Z :..

    [컴퓨터 구조] 산술 연산 (Shift)

    [컴퓨터 구조] 산술 연산 (Shift)

    Logical shift(논리적 시프트) 논리적 시프트 연산은 레지스터 내의 데이터 비트들을 왼쪽, 오른쪽으로 한 칸씩 이동시키는 동작이다. 110011을 left shift 하면 100110이 된다. 101011을 right shift 하면 010101이 된다. 시프트되어 갈 곳을 잃은 비트는 버려지게 되고, 비어있는 비트는 0으로 채워진다. circular shift(순환 시프트) 최상위, 최하위 비트를 버리지 않고, 반대편 끝에 있는 비트 위치로 들어가게 한다. 1010을 circular left shift하면 0101이 된다. 1101을 circular right shift하면 1110이 된다. 논리적 시프트연산과 순환 시프트 연산을 이용하면, 두 레지스터들 간에 직렬 데이터 전송이 가능하다. 시..