라벨이 ComputerArchitecture인 게시물 표시

(ComputerArchitecture) 진법 변환

10진법 (99)다음에 (100)이 되는 것처럼 16진법 (FF)다음에 (100)이 된다. <진법 변환> M*B^E으로 나타내면 M(가수:significand)라고 하며 10진법에서는 0~9의 값을 갖고, 2진법 에서는 0~1, 8진법에서는 0~7, 그리고 16진법에서는 0~F의 값을 갖는다. B(기수:Base)는 10진법에서는 10, 2진법에서는 2, 8진법에서는 8, 16진법에서는 16이 된다. 그리고 E는 지수(Exponenet)라고하며 정수의 값을 갖는다. 1. <2진법과 8진법 간의 변환> 2진수를 3비트 단위로 분할하고, 각 3비트를 10진수로 변환한다. 어차피 3비트 2진수는 0~7사이 이기 때문이다. 예) (110010111110)-->(110 010 111 110)-->(6 2 7 6)이다. 2. <8진법과 2진법 간의 변환> 각 자리의 8진수를 3비트의 2진수로 변환한다. 예) (1374)-->(001 101 111 100)이 된다. 3. <2진법과 16진법 간의 변환> 2진수를 4비트 단위로 분할하고,각각의 4비트 들을 10진수로 변환한다. 이것을 다시 16진수로 변환한다. 예) (0011 0010 1111 1000)-->(3 2 15 8)--->(32F8) 4. <16진법과 2진법 간의 변환> 16진수에서 10진수로 변환하고  다시 2진수로 변화한다. 예) (C 4 D 2)---->(12 4 13 2)---->(1100 0100 1101 0010) 5. <8진법과 16진법 간의 변환> 8진수와 16진수는 모두 2진수를 좀 더 편하게 표현하기 위해 만들어졌다. 그래서 중간에 2진수 변을 경유해서 수행하는 것이 편리하다. 8진수를 3비트 단위 2진수로 변환하고 다시 4비트씩 분할해 16진수로 변환한다. 예) (5323)--->(101 011 010 011) 변환...

(Computer Architecture)인터럽트 우선순위 체제

이미지
인터럽트가 다양하게 발생하면 순서를 매겨서 차례차례 처리한다. 실제로 인터럽트 우선순위가 정의되어있다. 인터럽트 우선순위 체제의 목적은 CPU에 연결되어 있는 여러 장치에서 동시에 하나이상의 인터럽트가 발생했을 때 먼저 서비스할 장치를 결정하기 위해서다. 인터럽트 우선순위 체제의 기능 1) 각 장치에 우선순위를 부과하는 기능 2) 인터럽트를 요청한 장치의 우선순위를 판별하는 기능 3) 우선순위가 높은 것을 먼저 처리할 수 있는 기능 인터럽트 우선순위를 판별하는 방법은 소프트웨어적인 방법과 하드웨어적인 방법이있다. 소프트웨어적인 인터럽트 우선순위 판별 방법을 Polling이라고 한다. 인터럽트 발생시 우선순위가 가장 높은 인터럽트 자원(Source)부터 인터럽트 요청플래그를 차례로 검사하여 찾고 이에 해당하는 인터럽트 서비스 루틴을 수행하는 방식. 폴링의 특징은 다음과 같다. 1)우선순위 변경이 쉽다. 2) 회로가 간단하고 융통성이 있으며 별도의 하드웨어가 필요 없으므로 경제적이다. 3)많은 인터럽트가 있을 때 그들을 모두 조사하는데 많은 시간이 걸려 반응시간이 느리다는 단점이 있다. 하드웨어 우선순위 인터럽트는 CPU와 Interrupt를 요청할 수 있는 장치 사이에 장치 번호에 해당하는 버스를 병렬이나  직렬로 연결하여 요청 장치의 번호를 CPU에 알리는 방식이다. 벡터 인터럽트의 특징은 다음과 같다. 1)벡터 인터럽트 방식에서는 인터럽트를 발생한 장치가 프로세서에게 분기할 곳에 대한 저보를 제공하는데, 이 정보를 인터럽트 벡터라고 한다. 2) 하드웨어적인 방법은 장치 판별을 위한 별도의 프로그램 루틴이 없어 응답속도가 빠르다. 3)회로가 복잡하고 융통성이 없으며 추가적인 하드웨어가 필요하므로 비경제적이다. 4) 하드웨어적인 방법은 직렬과 병렬 우선순위 부여 방식이 있다. 직렬,병렬 방식의 특징 떄문에 벡터 인터럽트는 두가지로 나뉜다. ...

(Computer Architecture)마이크로 오퍼레이션

이미지
마이크로 오퍼레이션이란 무엇일까? --->명령 한개를 실행하기 위해서는 일단 그 명령이 기억된 위치를 파악해야된다. 그 다음 그곳을 찾아가서 명령을 꺼내온 후 무슨 명령인지 번역해야 한다. 또 번역했으면 그 명령을 처리할 장치를 동작시켜야 한다. 이러한 여러가지 동작과정을 거치는데 이 때의 작은 동작하나하나를 마이크로 오퍼레이션이라고 한다. 즉, 레지스터에 저장된 데이터에 의해 이루어지는 동작이다. 예) MAR<-PC :프로그램 카운터의 내용을 MAR레지스터에 기억시킨다.      AC<-AC+MBR: 누산기(AC)의 내용과 MBR의 내용을 더하여 누산기에 기억시킨다. **마이크로 오퍼레이션은 한 개의 Clock펄스 동안 실행되는 기본 동작으로, 모든 마이크로 오퍼레이션은 CPU의 Clock펄스에 맞춰 실행돼. 그리고 마이크로 오퍼레이션은 컴퓨터의 모든 명령을 구성하고 있는 몇 가지 종류의 기본 동작으로, 컴퓨터 프로그램에 의한 명령의 수행은 마이크로 오퍼레이션의 수행으로 이루어진다. 마이크로 오퍼레이션의 순서를 결정하기 위해 제어장치가 발생하는 신호를 제어신호라고한다. 마이크로 오퍼레이션은 Instruction실행 과정에서 한 단계씩 이루어지는 동작으로 한개의 Instruction은 여러 개의 마이크로 오퍼레이션이 동작되어 실행되는 것이다. **제어워드: 레지스터의 선택과 산술 논리 연산장치의 역할을 결정하고, 어떤 마이크로 연산을 할것인가 결정하는 비트의 모임 **마이크로 프로그램: 어떤 명령을 수행할 수 있도록 구성된 일련의 제어 워드가 특수한 기억장치 속에 저장될 때 이를 마이크로 프로그램이라고 한다. **마이크로 사이클 타임(Micro Cycle Time)은 한 개의 마이크로 오퍼레이션을 수행하는데 걸리는 시간 모든 순서 논리회로(순차회로)Clock Pulse의 동기화에 의해 동작되는데,CPU도 하나의 거대한 순서논리회로 이므로 CPU역시 Clock Pulse에 동...

(ComputerArchitecture)명령 사이클

1. fetch 먼저 프로그램카운터의 초기주소값이 결정되고 주소에 의하여 명령어가 기억장치로부터 읽혀진다. 이것을 인출이라 한다. PC를 참조하여 실행할 명령을 기억장체치에서 읽어와 IR로 전송 디코딩 다음명령을 위하여 PC 갱신 t0 : MAR ← PC                            : 명령의 번지를 전송 t1 : MBR ← M(MAR), PC ← PC+1     : 명령을 읽고, PC하나 증가 t2 : OPR ← MBR(OP), I ← MBR(I)    :  OP코드와 mode 비트를 전송 2. indirect 인출해 온 오퍼랜드르 주소값으로 하여 기억장치로 부터 내용을 다시 읽어와야 하는데 이러한 과정을 간접사이클이라 한다.fetch사이클에서 읽어드린 명령의 모드비트가 간접주소인 경우에는 이 indirect사이클로 변이되며, 유효주소를 얻기 위하여 기억장치에 접근한다. t0 : MAR ← MBR(AD)                   : 명령의 번지를 전송 t1 : MBR ← M(MAR)                    : 명령을 읽고, PC하나 증가 3. execute AND (q0) ADD  (q1) :...

(Computer Architecture) 인터럽트 사이클

이미지
인터럽트(interrupt) :프로그램 처리 중에 CPU로 하여금 순차적인 명령어 실행을 중단하고 다른 프로그램을 처리하도록 요구할 수 있는 메커니즘. 주프로그램(main program)의 관점에서 볼때 정상적인 프로그램 처리의 흐름을 방해하는 동작이나, 긴급한 상황에 대처하거나 외부 장치들과의 상호 작용을 위하여 반드시 필요한 기능이다. 인터럽트 서비스 루틴(interrupt service routine:ISR) :CPU가 어떤 프로그램을 순차적으로 수행하는 도중에 외부로부터 인터럽트 요구가 들어오게 되면, CPU는 원래의 프로그램 수행을 중단하고 요구된 인터럽트를 처리해주기 위한 프로그램을 먼저 수행한다. 인터럽트에 대한 처리가 끝나면 CPU는 원래의 프로그램으로 복귀(return)하여 그 수행을 계속한다. 만약, 인터럽트 요구가 들어왔다면, CPU는 다음의 동작들을 수행한다.  다음에 실행할 명령어의 주소를 가리키는 현재의 PC 내용을 스택(stack)에 저장한다. 이것은 인터럽트 처리를 완료한 후에 복귀할 주소를 저장해두기 위한 절차이다. 해당 인터럽트 서비스 루틴을 호출하기 위하여 그 루틴의 시작 주소를 PC에 적재한다. 이때 시작 주소는 인터럽트를 요구한 장치로부터 전송되거나 미리 정해진 값으로 결정된다. 만약, 중요한 프로그램이 실행되는 중이라서 CPU가 인터럽트를 받지 못하도록 설정 되어 있는 경우라면, 인터럽트 사이클은 수행되지 않는다. 그렇지 않은 경우라면 CPU는 항상 인터럽트 사이클을 수행한다. 인터럽트 사이클(interrupt cycle) : t0: MBR  ←  PC t1: MAR  ← SP, PC  ← ISR 의 시작 주소 t2: M[MAR]  ←  MBR, SP  ←  SP-1 스택포인터(stack pointer:SP) :특수 목적용 레지스터들 중의 하나로 그 냐용은 항상 스택의 최상위(top...