CS 105

컴퓨터 구조론 3장 [컴퓨터 산술과 논리 연산5]

부동소수점 수의 표현지수(exponent)를 이용하여 소수점의 위치를 이동시킬 수 있는 수 표현 방법 10진수에서는 과학적 표기(scientific notation)를 사용하여 문제를 극복할 수 있다.ex)274,000,000,000,000dms 2.74 * 10^14으로, 0.00000000000274는 2.74 * 10^-12으로 표기할 수 있다.이 방법은 10진 소수점의 위치를 적절히 이동시키고, 소수점의 위치는 지수(exponent)를 이용하여 표시하는 것이다.소수점의 위치를 필요에 따라 이동시키는 표현 방법을 부동소수점 표현이라고 한다. 그와 같이 표현된 수를 부동소수점 수라고 부른다.이 표현 방법을 사용하면 매우 큰 수나 매우 작은 수도 간결하게 표현할 수 있다.N = (-1)^S M X B^..

컴퓨터 구조론 3장 [컴퓨터 산술과 논리 연산4]

정수의 산술 연산컴퓨터가 처리하는 기본적인 산술 연산들의 종류를 마이크로-연산으로 표현덧셈2의 보수로 표현된 수들 간의 덧셈 방법은 먼저 두 수를 더하고, 만약 올림수가 발생하면 버리면 된다.이러한 과정은 더 많은 비트들로 이루어진 데이터에 대해서도 동일하게 적용된다. 만약 덧셈 결과값의 부호가 1이라면 그 값은 2의 보수로 표현된 음수를 나타낸다.병렬 가산기(parallel adder)여러 비트들로 이루어진 두 개의 데이터에 대한 덧셈을 수행하는 회로로서, 비트 수만큼의 전가산기(full adder)들로 구성덧셈을 수행하는 하드웨어는 병렬 가산기(parallel adder)라고 부른다.ex) 4-비트 병렬 가산기는 네 개의 전가산기들로 이루어진다. 전가산기들은 올림수 비트(carry bit)를 전송하는..

컴퓨터 구조론 3장 [컴퓨터 산술과 논리 연산3]

시프트 연산논리적 시프트(logical shift)논리적 시프트 연산이란 레지스터 내의 데이터 비트들을 왼쪽 혹은 오른쪽으로 한칸씩 이동시키는 것을 말한다.좌측 시프트 연산을 수행하면, 비트들이 왼쪽으로 한 칸씩 이동된다. 그리고 맨 우측 비트로는 0이 들어온다. 4-비트 레지스터는 네 개의 플립-플롭들로 구성되므로, 좌측-시프트는 각 플립-플롭의 출력이 왼편의 플립-플롭으로 입력된다는 것을 의미한다. 유의사항 : 최하위 비트(A1)로는 0이 들어오고, 최상위 비트(A4)는 버리게(drop out)된다는 점이다.반대 방향의 연산인 우측 시프트 연산에서는 모든 비트들이 우측으로 한 칸씩 이동하게 된다. 이 경우에는 최상위 비트(A4)로 0이 들어오고, 최하위 비트(A1)는 버린다.어떤 레지스터에 '0100..

컴퓨터 구조론 3장 [컴퓨터 산술과 논리 연산2]

논리연산ALU가 수행하는 기본적인 연산으로는 산술 연산과 논리 연산이 있다. 컴퓨터가 처리하는 데이터의 형태들 중에서 수(number)를 나타내는 데이터는 단어(word) 단위로 취급된다. 만약 데이터 단어의 길이가 16비트라면, 모든 산술적 연산은 16-비트 단위로 수행된다. 반면에 논리적 데이터(logicaldata에서는 단어 내의 각 비트 단위로 의미를 가지며, 연산도 비트 단위로 처리된다.두 개의 비트 A와 B에 대하여 처리될 수 있는 기본적인 논리 연산비트 단위의 논리 연산들을 위한 하드웨어 모듈입력 비트들은 일단 모든 게이트들을 통과하여 각 논리 연산의 출력을 발생한다. 그리고 두 개의 선택 신호들에 의해 선택된 연산의 출력만 4X1 멀티플렉서의 출력으로 나가게 된다.n-비트 데이터들에 대하여..

컴퓨터 구조론 3장 [컴퓨터 산술과 논리 연산]

산술논리연산장치(ALU : Arithmetic and Logical Unit)CPU 내부의 핵심 구성요소로서, 산술 연산과 논리 연산을 수행하는 하드웨어 모듈컴퓨터의 가장 근본이 되는 기능 : 수치에 대한 산술적 계산과 논리 데이터에 대한 연산산술적 계산일반적으로 정수(integer)와 부동 소수점 수 (floating-point number)라는 두 가지 형태의 수들에 대하여 수행되며, 논리 연산은 0과 1의 배열로 표현되는 2진 데이터(binary data)에 대하여 이루어진다.ALU의 구성 요소CPU의 내부 구성 요소들 중 하나인 ALU는 수치 및 논리 데이터에 대하여 실제적으로 연산을 수행하느 하드웨어 모듈이다.컴퓨터 시스템의 다른 요소들인 제어 유니트, 레지스터, 기억장치 및 I/O장치는 사실상..

컴퓨터 구조론 2장 [CPU의 구조와 기능 - 명령어 세트3]

실제 상용 프로세서들의 명령어 형식회로 복잡도 증가 및 성능 한계를 극복하는 방법으로 새로이 제안된 명령어 세트 설계 개념은 명령어의 수를 최소화하고, 명령어의 길이를 일정하게 고정시키며, 주소지정 방식의 종류도 단순화 시키는 것이다.이러한 개념에 근거해 출현한 새로운 유형의 프로세서는 RISC(Reduced Instruction Set Computer)프로세서라고 불린다.그와 비교하여 복잡한 명령어 형식을 가진 기존 유형의 프로세서는 CISC(Complex Instruction Set Computer) 프로세서로 분류되고 있다. 실제 상용화된 프로세서들의 명령어들PDP 계열 프로세서PDP-10 시스템의 프로세서는 단어의 길이가 36비트이며, 명령어의 길이도 36비트이다. PDP-10 프로세서는 명령어의..

컴퓨터 구조론 2장 [CPU의 구조와 기능 - 명령어 세트2]

주소지정 방식(addressing mode)주소 비트들을 이용하여 오퍼랜드의 유효 주소(effective address)를 결정하는 방법주소 지정 방식의 종류는 매우 다양하고 CPU 마다 다르다.기호EA : 유효 주소(Effective Address), 데이터가 저장된 기억장치의 실제 주소A :명령어내의주소필드내용(오퍼랜드필드의내용이기억장치 주소인 경우)R : 명령어 내의 레지스터 번호 (오퍼랜드 필드의 내용이 레지스터 번호인 경우)(A) : 기억장치 A번지의내용(R):레지스터 R의내용명령어가 실행되는 과정에서 주소지정 방식에 따라 유효 주소인 EA가 결정되며, EA는 실제 데이터를 읽어오기 위한 주소로 사용된다. 주소지정 방식이 복잡해질수록 EA를 결정하는데 걸리는 시간이 더 길어진다.직접 주소지정 방..

컴퓨터 구조론 2장 [CPU의 구조와 기능 - 명령어 세트]

CPU의 기능은 명령어들에 의하여 결정된다. 명령어들의 종류와 수는 CPU마다 약간씩 다르다.CPU를 위해 정의되어 있는 명령어들의 집합을 명령어 세트(Instruction set)라 한다. 명령어 세트를 설계하기 위한 사항연산 종류(Operation repertoire) : CPU가 수행할 연산들의 수와 종류 및 복잡도데이터 유형(Data type) : 연산이 수행될 데이터들의 유형, 즉, 데이터의 길이(비트 수)와 수의 표현 방식(정수, 부동소수점 수 )등명령어 형식(Instructioon format) : 명령어의 길이, 오퍼랜드 필드들의 개수와 길이 등주소지정 방식(addressing mode) : 오퍼랜드의 주소를 지정하는 방식연산의 종류CPU가 수행할 수 있는 연산(혹은 동작)들의 종류는 컴퓨..

컴퓨터 구조론 2장 [CPU의 구조와 기능 - 명령어 파이프라이닝]

명령어 파이프라이닝(Instruction Pipelining)명령어 실행에 사용되는 하드웨어를 여러 단계로 분할함으로써 처리 속도를 높여주는 기술이것은 명령어를 실행하는데 사용되는 하드웨어를 여러 개의 독립적인 단계들로 분할하고, 그들로 하여금 동시에 서로 다른 명령어들을 처리하도록 함으로써 CPU의 성능을 높여주는 기술을 말한다. 명령어 파이프라인은 분할되는 단계의 수가 많아질수록 처리 속도가 높아지는데, 최근에는 CPu의 속도를 더욱 높이기 위하여 여러 개의 명령어 파이프라인들을 설치하기도 한다. 2-단계 명령어 파이프라인명령어 사이클은 기본적으로 인출 사이클과 실행 사이클이라는 두 개의 단계로 이루어진다. 각 사이클의 동작을 처리하는 하드웨어를 독립적인 모듈로 구성할 수 있다면 각 모듈이 서로 다른..

컴퓨터 구조론 2장 [CPU의 구조와 기능 - 명령어 실행]

CPU는 기억장치에 저장됭어 있는 명령어들을 인출하여 실행함으로써 실제적인 작업을 수행한다.CPU 가 한 개의 명령어를 실행하는데 필요한 전체 과정 : 명령어 사이클(Instruction Cycle)명령어 사이클은 인출단계와 명령어 실행 단계로 나누어진다.CPU가 기억장치로부터 명령어를 읽어오는 명령어 인출(Instruction fetch)인출된 명령어를 실행하는 명령어 실행(Instruction execution)이 두 단계를 각각 부사이클(subcycle)로 구분하여 명령어 사이클의 흐름도를 보면 그 부사이클은 각각 인출 사이클과 실행 사이클이라 부른다.명령어 사이클은 CPU가 프로그램 실행을 시작한 순간부터 전원을 끄거나 회복 불가능한 오류가 발생하여 중단될 때까지 반복하여 수행된다. 명령어를 실행..