달력

02

« 2008/02 »

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

'2008/02/18'에 해당되는 글 2

  1. 2008/02/18 명령어 인출 사이클과 실행 사이클
  2. 2008/02/18 Interface란?
인출 사이클

1. CPU가 각 명령어 사이클의 시작단계에서 대기
2. PC(프로그램 카운터)가 가리키는 기억장치의 위치에서 명령어 인출
3. PC의 내용을 1씩 증가(기억장치에 저장된 순서대로 명령어를 읽는다.)

t0 : MAR <- PC
t1: MBR <- M[MAR], PC <- PC + 1
t2: IR <- MBR
t0,t1,t2는 CPU 클럭의 주기

실행 사이클(4가지 연산)
데이터 이동: CPU와 기억장치 또는 CPU와 I/O 장치 간에 데이터 이동
데이터 처리: 데이터에 대하여 산술 혹은 논리 연산을 수행
데이터 저장: 연산결과 데이터 혹은 입력장치로부터 읽어들인 데이터를 기억장치에 저장.
제어: 프로그램의 실행 순서를 결정.


명령어의 구성은 연산코드|오퍼랜드(address)로 구성됨.
첫번째 연산 - IR(Instructure Register)에 저장된 오퍼랜드(addr) 를 MAR을 통해 기억장치로 보내어 데이터를 인출
t0 : MAR <- IR(addr) (IR에 있는 주소를 MAR로 보낸다.)
t1: MBR <- M[MAR] (주소가 지정한 기억장소에서 데이터 인출하고 MBR로 전송)
t2: AC <- MBR (AC에 적재, LOAD 실행완료)
t0,t1,t2는 CPU 클럭의 주기

두번째 연산 - AC 레지스터의 내용을 기억장치에 저장
t0 : MAR <- IR(addr) (IR에 있는 주소를 MAR로 보낸다.)
t1: MBR <- AC (저장할 데이터를 버퍼 레지스터로 이동(MBR))
t2: M[MAR] <- MBR (MBR의 내용을 MAR이 지정하는 기억장소에 저장)
t0,t1,t2는 CPU 클럭의 주기

세번째 연산 - 데이터 처리 명령어, 기억장치에 저장된 데이터를 AC의 내용과 더해 다시 AC에 저장.
t0 : MAR <- IR(addr) (IR에 있는 주소를 MAR로 보낸다.)
t1: MBR <-  M[MAR] (주소가 지정한 기억장소에서 데이터 인출하고 MBR로 전송)
t2: AC <- AC + MBR (AC의 내용을 더하고 결과값을 AC에 저장)
t0,t1,t2는 CPU 클럭의 주기

네번째 연산: 제어 명령은 대부분 분기 명령어로 실행
t0 : PC<- IR(addr) (오퍼랜드가 PC로 적재됨)

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

인터럽트 사이클  (0) 2008/02/19
간접사이클과 명령어 파이프라이닝  (0) 2008/02/19
명령어 인출 사이클과 실행 사이클  (0) 2008/02/18
SOA란?  (0) 2008/02/17
CPU의 구조  (0) 2008/02/17
CPU와 기억장치  (0) 2008/02/16
Posted by -세티-
2008/02/18 13:22

Interface란? General .NET2008/02/18 13:22

interface의 사전적 의미는 경계면, 접점, 공유영역, 결부하다, 조합하다라는 의미를 가집니다.
인터페이스는 일종의 추상클래스 이지만 추상클래스보다 추상화가 높습니다.
우리가 추상클래스를 부분적으로 그려진 그림이라고 가정한다면 인터페이스는 가징 기본적인 것만 밑 그림으로 그려진 기본 설계도라고 할 수 있습니다.

인터페이스는 클래스를 작성하는데 도움을 줄 목적으로 사용됩니다.

인터페이스를 작성하는 키워드는 interface 입니다.
인터페이스의 예를 코드로 작성하면 다음과 같습니다.

interface IEmployee
{
     int Compare(object obj);
}
- 클래스나 구조체에 속하는 관련 동작의 그룹을 설명
- 메소드, 속성, 이벤트, 인덱서 등의 조합으로 구성될 수 있다.
- 하지만 필드는 포함될 수 없다.
- 기본적으로 public 이다.

인터페이스를 상속 받아서 클래스에서 구현하기 위해서는 정적이 아닌 공용 멤버여야 하고, 인터페이스 멤버와 동일한 이름이나 시그니처를 사용해야 한다.

인터페이스의 속성?
- 추상클래스와 비슷, 비추상 형식에서는 해당 멤버를 모두 구현 해야 함.
- 인스턴스화 할 수 없다.
- 메소드의 구현을 포함하지 않음.

명시적 인터페이스 구현
- 두 인터페이스의 시그니처가 동일한 경우
클래스에서 이 멤버를 구현하면 두 인터페이스에서 이 멤버를 해당 구현으로 사용한다.

interface IControl
{
    void Paint();
}
interface ISurface
{
    void Paint();
}
class SampleClass : IControl, ISurface
{
    // Both ISurface.Paint and IControl.Paint call this method.
    public void Paint()
    {
    }
}

- 두 인터페이스의 시그니처가 다른 경우
이 경우에 구현시 구현이 잘못될 가능성이 존재한다.
특정 인터페이스의 멤버를 명시적으로 구현할려면 마침표를 이용해야 한다.
public class SampleClass : IControl, ISurface
{
    void IControl.Paint()
    {
        System.Console.WriteLine("IControl.Paint"); ------ 1
    }
    void ISurface.Paint()
    {
        System.Console.WriteLine("ISurface.Paint"); -------2
    }
}

1은 IControl에서만 쓰였고, 2는 ISurface에서만 사용되었다.
두 메소드의 구현은 철저하게 별개이다.
SampleClass sc = new Sample();
IControl ic = (IControl)sc;
ic.Paint();

ISurface isf = (ISurface)sc;
sc.Paint();

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

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
using System.IO.Ports  (0) 2008/01/17
TAG interface
Posted by -세티-