4월 1일 OSS Project

2009년 4월 1일 수요일, 만우절, OSS Project 기록 일지

<Cache> : Swap 이라고도 한다.
    많은 분야에서 쓰인다.

* Hardware Cache
    - Multi Core
    - 사용 목적 : 고용량의 저속의 장치
                      속도를 개선하기 위해 메모리를 임시로 저장함.
    - Memory 속도 : 클럭 속도가 매우 많이 올라감 (1066 MHz)
        ※ CPU 속도는 3.6GHz까지 개발됨
    - Cache를 처음 쓴 건 Pentium Classic -> L1 Cache 밖에 없었다.
    - CPU에 MMU(Memory Management Unit)가 있었다.
    - Pentium 2 : CPU 안에 L1 Cache가 있고, L2 Cache도 있다. (칩은 분리되어 있다.)
                     : Multi CPU. CPU를 두 개 꽂는다.
    - Pentium 3 : CPU 안에 L1 Cache와 L2 Cache가 함께 있다. -> SMP 완벽지원함.
    - Core Architecture : CPU 안에 L1 Cache와 L2 Cache가 함께 있고, L3가 따로 붙어 있다. (Dual or Quad Core)

* 어떤 프로그램 A가 있을 때, 비교판단 부분은 같이 수행하겠지만, 연산 부분은 Core1과 Core2로 나눠서 수행할 수 있다.
    각 Core안의 값을 동기화 시켜서 계산.
    Cache Controller라는 것이 존재하는데, 각각의 Cache사이에서 연결을 해준다.
    Cache Controller에 연결된 Cache가 많으면 많을수록 동기화에 의미가 있다.

* Multi-Core : Snoop Operator (Multi Core Protocol)
    각각의 코어 값에서 바뀐 부분이 잇으면 각 캐쉬의 내용을 동기화하고 사용 가능하게 변경을 한 후 다시 수행한다.
    - MESI (Modified Exclusive-clean Shared Invalid)
        1. Modified : 서로 변경된 후
        2. Invalid : 메모리 영역을 무효화시키고
        3. Shared : 서로 공유를 한 후
        4. Exclusive-clean : 서로 각각 의존성이 해결되고 동기화가 된다.

* Pentium 4        Hyper Thread : 연산 확장 기능을 하나의 CPU 안에서 하자.
    열처리를 못하고 공정이 너무 크다. -> 구조를 심플하게 하자.

* Core : Pentium3 를 기반으로 또한 구조도 simple // SMP 가능.
    Core1 안에 L1 캐쉬가 있고, Core2안에 L2 캐쉬가 있다. 그리고 L3캐쉬는 공용 메모리로 사용된다.
    동기화하는 Precess가 무척 간편해짐.

----------------------------------------------------------------------------------------------

*386 Super Computer
1. 처음엔 Network 기반으로 Multi Precess를 하려고 함.
    -> Message Precess를 통해 하자.
        MPI Library를 이용 -> 네트워크 내의 Super computer
           └ 같은 구조의 컴퓨터로 연결
           └ 원자, 분자 간 등 여러 계산을 한 번에 가능하게 함.
2. 하드웨어가 개발되면서 네트워크가 필요없어짐
    IPMI : 버스 프로토콜 개발
     └ 포트가 따로 있음 (컴퓨터끼리 연결)
3. Non-Uniform memory architecture
        Numa Platform
        에뮬레이션까지 해주지만 자원 X
        각각의 Process Node가 각각의 메모리를 갖고 있고 연산 결과도 갖고 있다.
        Array Computing (배열구조로)

----------------------------------------------------------------------------------------------

* Shared Memory
    Program : HardDisk 에 프로그램 자체
    Process : 프로그램이 메모리에 적재되어 있으면 Process (실행되어 돌아갈 수 있을 때)
        -> 프로그램을 만들 때 공통되는 부분을 따로 나눠놓자 (Shared Memory : 나눠서 저장함)
* Dynamic Linked Library (동적 링크 라이브러리)
    라이브러리를 부르면 OS가 관여하게 된다. (OS : DLL이 있는 지 확인)
    Call reference : DLL을 부르는 곳
        OS가 메모리에 Call Reference 저장, DLL에서 프로그램이 끝나고 나서 그것을 반환함.
    커널은 Static : DLL 사용 불가!
* ARM : Multi-ARM : BIOS가 없다.

by 노아 | 2009/04/02 01:07 | OSS | 트랙백 | 덧글(0)

◀ 이전 페이지다음 페이지 ▶