티스토리 뷰

반응형
볼대수의 기본 공식



논리게이트




반가산기(Half Addr)

1Bit짜리 2진수 2개를 덧셈한 합과 자리올림 수를 구하는 회로

 A

SUM 

CARRY

AB

0



전가산기(Full Adder)

1Bit 크기의 2진수 3자리를 더하여 합과 자리올림 수를 구하는 회로

2개의 반가산기와 1개의 OR Gate로 구성됨



디코더 (Decoder)

n Bit의 코드화된 정보를 그 코드의 각 Bit 조합에 따라 2^n개의 출력으로 번역하는 회로

명령어의 명령부나 번지를 해독할 떄 사용되며, 주로 AND 게이트로 구성됨


플립플롭

전원이 공급되는 한 상태변화를 위한 신호가 발생할 떄 현재 상태를 그대로 유지하는 논리회로

플립플롭 1개가 1비트를 구성하는 2진셀이 된다.

반도체 기억장치에서 2진수 1자리값을 기억하는 메모리 소자

기본적으로 2개의 NAND 또는 NOR 게이트를 이용하여 구성


RS        S와 R선의 입력을 조절하여 임의의 비트 값을 그대로 유지시키거나 무조건 0또는 1의 값을 기억시키기 위해서 사용

JK        RS FF에서 S=R=1일 때 동작안되는 결점을 보완한 플립플롭

D         RS FF에 R선에 인버터를 추가하여 S선과 하나로 묶어 입력선을 하나만 구성한 플립플롭 입력한 값을 그대로 저장하는 기능을 수행

T         JK FF의 두 입력선을 묶어 한개의 입력선으로 구성한 플립플롭 

M/S    출력 측의 일부가 입력 측에 피드백되어 유발되는 레이스 현상을 없애기 위해 고안된 플립플롭


자료 구성의 단위

비트        자료 표현의 최소 단위이고 2진수로 표시하며 2^n 가지를 표현할 수 있음

니블        4개의 비투가 모여 1개의 니블을 구성함

바이트     문자를 표현하는 최소 단위로 8개의 비트가 모여 1바이트를 구성함

워드        CPU가 한번에 처리할 수 있는 명령 단위    (반워드 2바이트, 풀워드 4바이트, 더블워드 8바이트)

필드        파일 구성의 최소 단위

레코드     하나 이상의 관련된 필드가 모여서 구성됨

블록        하나 이상의 논리 레코드가 모여서 구성됨

파일        프로그램 구성의 기본 단위며 여러 레코드가 모여서 구성됨

디비        여러 개의 관련된 파일의 집합


보수

컴퓨터가 기본적으로 수행하는 덧셈 회로를 이용하여 뺄셈을 수행하기 위해 사용


33의 10의 보수?

33    +    X    =    100

X    =    67

10101의 2의 보수?

10101    +    X    =    100000

X    =    01011


33의 9의 보수?

33    +    X    =    99

X    =    66

1010의 1의 보수?

10101    +    X    =    11111

X    =    01010


2진 연산 표현 범위 (n 비트일 경우)

부호화 1의 보수법 범위    -2^n+1    ~    +2^n-1

부호화 2의 보수법 범위     -2^n    ~    +2^n-1


자료 표현 코드

BCD코드

10진수 1자리의 수를 2진수 4비트로 표현함

4비트의 2진수 각 비트가 8,4,2,1의 자리 값을 가지므로 8421코드라고도 함

Excess-3 코드

BCD코드에 3을 더하여 만든 코드

Gray 코드

BCD 코드의 인접하는 비트를 X-OR 연산하여 만든 코드

패리티 검사 코드

코드의 오류를 검사하기 위해서 데이터 비트 외에 1비트 패리티 체크 비트를 추가하는 것으로 1비트의 오류만 검출할 수 있음

해밍 코드

오류를 스스로 검출하여 교정이 가능한 코드

1비트 오류만 교정할 수 있음

2^n 번째 비트는 오류 검출을 위한 패리티 비트임


중앙처리 장치의 구성 요소

제어장치

컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하는 장치

연산장치

제어장치의 명령에 따라 실제로 연산을 수행하는 장치

레지스터

CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억하는 임시 기억장소


주요 레지스터

프로그램 카운터, 프로그램 계수기

다음 번에 실행할 명령어의 번지를 기억하는 레지스터

명령 레지스터

현재 실행중인 명령의 내용을 기억하는 레지스터

누산기

연산된 결과를 일시적으로 저장하는 레지스터

상태 레지스터, PSWR,  플래그 레지스터

시스템 내부의 순간순간의 상태가 기록된 정보를 PSW라 함

메모리 주소 레지스터

기억장치를 출입하는 데이터의 번지를 기억하는 레지스터

메모리 버퍼 레지스터

기억장치를 출입하는 데이터가 잠시 기억되는 레지스터로 CPU가 데이터를 처리하기 위해서는 반드시 거쳐야 함

인덱스 레지스터

주소의 변경 서브루틴 연결 및 프로그램에서의 반복 연산의 횟수를 세는 레지스터

데이터 레지스터

연산에 사용될 데이터를 기억하는 레지스터

시프트 레지스터

저장된 값을 왼쪽 또는 오른쪽으로 1비트씩 자리를 이동시키는 레지스터

메이저 스테이터스 레지스터

CPU의 메이저 상태를 저장하고 있는 레지스터


버스

CPU, 메모리, I/O 장치 등과 상호 필요한 정보를 교환하기 위해 연결하는 공동의 전송선


전송 정보에 따른 버스 분류

번지 버스

CPU가 메모리나 입.출력 기기의 번지를 지정할 때 사용하는 단방향 전송선

자료 버스

CPU와 메모리 또는 입 출력 기기 사이에서 데이터를 전송하는 양방향 전송선

제어 버스

CPU의 현재 상태나 상태 변경을 메모리 또는 입.출력에 알리는 제어신호를 전송하는 양방향 전송선


위치에 따른 버스 분류

내부 버스

CPU 및 메모리 내에 구성된 버스

외부 버스

주변 입.출력장치에 구성된 버스


연산자부

수행해야할 동장에 맞는 연산자를 표시함 흔히 OP코드라고 함

연산자부의 크기는 표현할 수 있는 명령어의 종류를 나타내는 것으로  n비트면 최대 2^n개의 명령어를 사용할 수 있음


자료부

실제 데이터에 대한 정보를 표시하는 부분

주소부의 크기는 메모리의 용량과 관계가 있다.

자료부의 길이가 n 비트라면 최대 2^n개의 기억장소를 주소로 지정할 수 있음


명령어 설계 시 고려사항

연산자의 수와 종류

해당 컴퓨터 시스템에서 처리할 기능에 맞게 연산자의 수와 종류를 결정함

주소 지정 방식

명령어가 사용할 자료의 위치를 표현하기 위한 방법을 결정함

데이터 구조

해당 컴퓨터 시스템의 데이터 구조에 맞게 명령어를 설계함

인스트럭션 세트의 효율성을 높이기 위하여 고려할 사항

기억공간, 사용빈도, 주소지정 방식


연산

AND

특정 문자 또는 특정 비트를 삭제 시키는 명령으로 MAsking 명령이라고도 함

OR

특정 문자를 삽입하거나 특정 비트에 1을 세트시키는 명령으로 Selective Set 연산이라고도 함

XOR

2개의 데이터를 비교하거나 특정 비트를 반전시킬 때 사용함

NOT

각 비트의 값을 반전시키는 연산으로 보수를 구할때 사용함

논리 Shift

왼쪽 또는 오른쪽으로 1비트씩 자리를 이동시키는 연산으로 데이터의 직렬 전송에 사용함

삽입되는 자리는 무조건 0

Rotate

Shift에 밀려 나가는 비트의 값을 반대편 값으로 입력하는 연산

산술 Shift

부호를 고려하여 자리를 이동시키는 연산으로 2^n으로 곱하거나 나눌 때 사용함


명령어 형식

0번지 명령어

Operand 없이 op 코드부만으로 구성

모든 연산은 스택 메모리의 스택 포인터가 가리키는 Operand를 이용하여 수행

수식을 계산하기 전에 Postfix형태로 변경해야 함

원래의 자료가 남지 않음

1번지 명령어

Operand 1개로 구성

AC를 이용하여 명령어를 처리함

2번지 명령어

Operand 2개로 구성되는 가장 일반적으로 사용되는 명령어 형식

계산 겨로가가 기억장치에 기억되고 중앙처리장치에도 남아 있어서 계산 결과를 시험할 필요가 있을 때 시간이 절약됨

연산의 결과는 Operand 1에 저장되므로 1에 있던 원래의 자료는 파괴됨

3번지 명령어

Operand가 3개로 구성된 명령어 형식으로 여러 개의 범용 레지스터를 가진 컴퓨터에 사용함

연산의 결과는 Operand 1에 기록됨

연산 시 원시 자료를 파괴하지 않음

다른 형식의 명령어를 이용하는 것보다 프로그램 전체의 길이를 짧게 할 수 있음


주소 설계 시 고려사항

표현의 효율성

빠르게 접근하고 주소 지정에 적은 비트 수를 사용할 수 있도록 다양한 어드레스 모드를 사요할 수 있어야 함

사용의 편리성

다양하고 융통성 있는 프로그램 작업을 위해 포인터, 프로그램 리로케이션 등의 편의를 제공해야 함

주소 공간과 기억곤간의 독립성

프로그램 상에서 사용할 주소를 변경 없이 실제 기억공간 내의 주소를 재배치할 수 있도록 서로 독립적이어야 함


주소 지정방식의 종류

암시적 주소 지정방식

명령 실행에 필요한 데이터의 위치를 지정하지 않고 누산기나 스택의 데이터를 묵시적으로 지정하여 사용함

즉치적 주소 지정방식

명령어 자체에 오퍼랜드를 내포하고 있는 방식

직접 주소 지정방식

명령어의 주소부가 사용할 자료의 번지를 표현하고 있는 방식

간접 주소 지정방식

명령어에 나타낼 주소가 명령어 내에서 데이터를 지정하기 위해 할당된 비트수로 나타낼 수 없을 떄 사용하는 방식

계산에 의한 주소지정방식

Operand부와 특정 레지스터의 값이 더해져서 유효주소를 계산하는 방식


마이크로 오퍼레이션의 정의

Instruction을 수행하기 위해 CPU 내의 레지스터와 프래그가 의미 있는 상태 변환을 하도록 하는 동작

컴퓨터 프로그램에 의한 명령 수행은 마이크로 오퍼레이션의 수행으로 이루어진다.

하나의 Clock 펄스 동안 실행되는 기본 동작으로 모든 마이크로 오퍼레이션은 CPU의 Clock 펄스에 맞춰 실행된다.

오퍼레이션의 순서를 결정하기 위하여 제어 장치가 발생하는 신호를 제어신호라 한다.


제어 워드

레지스터의 선택과 산술 논리 연산장치의 역할을 결정하고 어떤 마이크로 연산을 할 것인가를 결정하는 비트의 모임을 제어 워드라고 한다.


마이크로 프로그램

어떤 명령을 수행할 수 있도록 구성된 일련의 제어 워드가 특수한 기억장치 속에 저장될때 이를 마이크로 프로그램이라고 한다.


마이크로 사이클 타임

한개의 마이크로 오퍼레이션을 수행하는 데 걸리는 시간


마이크로 사이클 타임 부여 방식

동기 고정식

모든 마이크로 오퍼레이션의 동작 시간이 같다고 가정하여 CPU Clock의 중기를 마이크로 사이클 타임과 같도록 정의하는 방식

동기 가변식

동작 시간이 유사한 마이크로 오퍼레이션들끼리 그룹을 만들어, 각 그룹별로 서로 다른 마이크로 사이클 타임을 정의하는 방식

비동기식

모든 마이크로 오퍼레이션에 대하여 서로 다른 마이크로 사이클 타임을 정의하는 방식


메이저 스테이트

현재 CPU가 무엇을 하고 있는가를 나타내는 상태

4개의 Fetch, Indirect, Execute, Interrupt의 상태가 있음


Fetch Cycle

명령어를 주기억장치에 중아처리장치의 명령 레지스터로 가져와 해동하는 단계

1사이클 명령이 아니면 해석된 명령어의 모드 비트에 따라 직접과 간접주소를 판단

모드 비트가 0이면 직접주소이므로 Execute 단계로 변천

모드 비트가 1이면 간접주소이므로 Indirect 단계로 변천


Fetch Cycle 동작 순서

MAR    <    PC

PC에 있는 번지를 MAR에 전송

MBR    <    M,    PC    <    PC + 1

메모리에서 MAR이 지정하는 위치의 값을 MBR에 전송

IR    <    MBR,    I    <    MBR

명령어의 OP 코드 부분을 명령 레지스터에 전송함

F    <    1    or    R    <    1

I가 0이면 F 플립플롭에 1을 전송하여 Execute 단계로 변천하고 I가 1이면 R 플립플롭에 1을 전송하여 Indirect 단계로 변천


Indirect Cycle

Fetch 단계에서 해석된 명령의 주소부가 간접주소인 경우 수행됨


Indirect Cycle 동작 순서

MAR    <    MBR

MBR에 있는 명령어의 번지 부분을 MAR 전송함

MBR    <    M

메모리에서 MAR이 지정하는 위치의 값을 MBR에 전송함

No Operation

동작 없음

F    <    1,    R    <    0

F에 1, R에 0을 전송하여 Execute단계로 변천함


Interrupt Cycle

인터럽트 발생 시 복귀주소를 저장시키고 제어순서를 인터럽트 처리 프로그램의 첫 번째 명령으로 옮기는 단계

인터럽트 단계를 마친 후에는 항상 Fetch 단계로 변천함


Interrupt Cycle 동작 순서

MBR    <    PC,    PC    <    0

PC가 가지고 있는 다음에 실행할 명령의 주소를 MBR의 주소 부분으로 전송함

복귀주소를 저장할 0번지를 PC에 전송함

MAR    <    PC,    PC    <    PC + 1

PC가 가지고 있는 값 0번지를 MAR에 전송함

M    <    MBR,    IEN    <    0

MBR이 가지고 있는 다음에 실행할 명령의 주소를 메모리의 MAR이 가리키는 위치에 저장함

F    <    0,    R    <    0

F에 0, R에 0을 전송하여 Fetch 단계로 변천함


임시저장 5월 25일

반응형
댓글
최근에 올라온 글
최근에 달린 댓글