달력

02

« 2008/02 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  •  

'2008/02/19'에 해당되는 글 3

  1. 2008/02/19 인터럽트 사이클
  2. 2008/02/19 간접사이클과 명령어 파이프라이닝
  3. 2008/02/19 Interface
2008/02/19 20:41

인터럽트 사이클 General Tech.2008/02/19 20:41

Interrupt - 컴퓨터에서 프로그램 실행중에 CPU의 정상적인 처리를 방해하는 매커니즘

인터럽트의 예)
1,2,3,4,5,6,7,8,9, 순서로 프로그램을 실행한다고 가정한다.
1,2,3,4,5 까지 실행했는데 중간에 다른 프로그램을 실행한다.
그래서 1,2,3,4,5 -> 다른 프로그램실행 -> 6,7,8,9 순으로 실행되야 한다.
6,7,8,9 로 복귀하기 위해선 서비스 프로그램이 필요하며 우린 이것을 Interrupt Service Routine(ISR)이라 부른다.

인터럽트가 요구되었을 때 CPU의 동작 수행
1. 현재의 명령어 실행을 즉시 중단.
2. 다음에 실행할 명령어의 주소를 Stack에 저장.
3. 인터럽트 서비스 루틴을 호출하기 위해 루틴의 시작 주소를 PC에 적재

t0 : MBR ,- PC (PC의 내용을 MBR로 전송)
t1: MAR <- SP,PC <- ISR의 시작주소 (SP의 내용이 MAR로 전송)
t2: M[MAR] <-MBR (MBR에 저장된 원래의 PC 내용을 스택에 저장)
SP: 스택포인터

'General Tech.' 카테고리의 다른 글

Google Analytics Interface Tutorial  (0) 2008/02/22
Semantic Web Interface  (0) 2008/02/20
인터럽트 사이클  (0) 2008/02/19
간접사이클과 명령어 파이프라이닝  (0) 2008/02/19
명령어 인출 사이클과 실행 사이클  (0) 2008/02/18
SOA란?  (0) 2008/02/17
TAG interrupt
Posted by -세티-
간접사이클이란?
- 기억장치에 저장된 데이터는 명령어에는 그 데이터를 호출하기 위한 기억장치의 주소가 포함되어 있을 것이다. 명령어에 포함된 주소를 데이터의 주소가 저장된 기억장치 주소로 사용하는 경우에 실행 사이클이 시작되기 전에 해당 주소를 기억장치로 부터 읽어와야 한다.

t0: MAR <- IR(addr)
t1: MBR <- M[MAR]
t2: IR(addr) <- MBR

이 방식은 간접 주소지정 방식에서 사용됨.

명령어 파이프라이닝

                                      <명령어>
명령어 ------> 인출단계 ------------> 실행단계 -------> 실행결과


                      1             2              3                  4
클럭주기   |-------|----------|-----------|-----------|
                  인출         실행
               |<---->|<-------->|
                                 인출            실행
                           |<-------->|<-------->|
                                                   인출             실행
                                             |<-------->|<-------->|


명령어를 실행하는 하드웨어는 인출단계(fetch stage)실행단계(execute stage)라는 두 개의 파이프 라인 단계들로 나누어진다.

두번째 단계에서는 실행과 동시에 인출이 일어난다. 이렇게 먼저 인출이 일어나는 것을 명령어 선인출 이라고 하거나 중복 인출 이라고 한다.
인출 + 실행 단계의 경우는 시간이 좀 걸리기지는 2번째 단계부터는 2배로 빨라진다.
이런 파이프라인의 갯수가 많을수록 성능이 향상된다.

파이프라인의 구성
명령어 인출(IF) : 다음 명령어를 기억장치에서 인출
명령어 해독(ID): 디코더를 이용해서 명령어 해석
오퍼랜드 인출(OF) : 기억장치에서 오퍼랜드를 인출
실행(EX) : 지정된 연산을 수행

'General Tech.' 카테고리의 다른 글

Semantic Web Interface  (0) 2008/02/20
인터럽트 사이클  (0) 2008/02/19
간접사이클과 명령어 파이프라이닝  (0) 2008/02/19
명령어 인출 사이클과 실행 사이클  (0) 2008/02/18
SOA란?  (0) 2008/02/17
CPU의 구조  (0) 2008/02/17
Posted by -세티-
2008/02/19 00:14

Interface General .NET2008/02/19 00:14

Interface란?
- 클래스의 한 종류
- 클래스의 뼈대만 가지고 있음.

Interface의 구성요소
- 메소드, 속성, 이벤트, 인덱서
- 선언만 가능

Interface의 접근자
- 기본적으로 public

Interface의 상속
- 중복상속, 단일 상속이 가능

Interface를 사용하는 목적
- 그것은 구현(Implementation)을 하기 위함이다.
- 이것은 비완전한 클래스 이므로 완전해지기 위해 구현을 해야 한다.
- 반드시 내부의 구현되지 않은 모든 멤버를 구현해야 한다.
- 인터페이스는 클래스에서 구현되어야 한다.

인터페이스의 구현 예)
using System;
using System.Collections.Generic;
using System.Text;

namespace CA_Interface
{

    interface IPrint
    {
        void SetUp();
        void PowerOn();
        void PowerOff();
        void LowPrint();
        void MidPrint();
        void FastPrint();
    }
    public class Program : IPrint
    {
        public void SetUp() {
            Console.WriteLine("프린트 설정을 준비중!");
            Console.ReadLine();
            return;
        }
        public void PowerOn() {
            Console.WriteLine("프린트 파워를 켜는 중!");
            Console.ReadLine();
            return;
        }
        public void PowerOff() {
            Console.WriteLine("프린트 파워를 끄는 중");
            Console.ReadLine();
            return;
        }
        public void LowPrint() {
            Console.WriteLine("느린 속도로 인쇄하는 중");
            Console.ReadLine();
            return;
        }
        public void MidPrint() {
            Console.WriteLine("중간 속도로 인쇄하는 중");
            Console.ReadLine(); Console.ReadLine();
            return;
        }
        public void FastPrint() {
            Console.WriteLine("빠른 속도로 인쇄하는 중");
            Console.ReadLine();
            return;
        }

        static void Main(string[] args)
        {
            IPrint ip = new Program();
            ip.SetUp();
        }
    }
}

인터페이스 + 인터페이스(속성)의 예)
using System;
using System.Collections.Generic;
using System.Text;

namespace CA_Interface
{
    interface IPowerOn
    {
        int IFlag
        {
            get;
            set;
        }
    }
    interface IPrint
    {
        void SetUp();
        void PowerOn();
        void PowerOff();
        void LowPrint();
        void MidPrint();
        void FastPrint();
    }
    public class Program : IPrint, IPowerOn
    {
        public void SetUp() {
            Console.WriteLine("Ready, Print Setup");
            Console.ReadLine();
            return;
        }
        public void PowerOn() {
            Console.WriteLine("Print Power On");
            Console.ReadLine();
            return;
        }
        public void PowerOff() {
            Console.WriteLine("Print Power Off");
            Console.ReadLine();
            return;
        }
        public void LowPrint() {
            Console.WriteLine("Doing Low Speed Print");
            Console.ReadLine();
            return;
        }
        public void MidPrint() {
            Console.WriteLine("Doing Miduam Speed Print");
            Console.ReadLine(); Console.ReadLine();
            return;
        }
        public void FastPrint() {
            Console.WriteLine("Doing Fast Speed Print");
            Console.ReadLine();
            return;
        }

        private int iflag = 0;
        public int IFlag
        {
            get {
                return iflag;
            }
            set {
                iflag = value;
            }
        }

        static void Main(string[] args)
        {
            IPrint ip = new Program();
            ip.SetUp();

            Program p = new Program();
            p.IFlag = 1000;
        }
    }
}

'General .NET' 카테고리의 다른 글

닷넷의 소켓 클래스  (0) 2008/04/11
ASP.NET MVC Framework  (0) 2008/03/27
Interface  (0) 2008/02/19
Interface란?  (0) 2008/02/18
스마트클라이언트 서명키 만들기  (0) 2008/02/17
닷넷으로 다국어 지원 폼 만들기  (0) 2008/02/12
Posted by -세티-