컴퓨터+a/컴퓨터일반

컴퓨터일반 - 5. 기억장치

hiiambk 2017. 4. 28. 14:23

<기억장치>

 

주기억장치 - CPU에 의해 수행될 프로그램 및 자료 저장

보조기억장치 - CPU에 의해 수행될 것을 제외한 모든 정보를 저장, 수행하고자 할 경우에는 반드시 주기억장치로 전송. 보조기억장치로부터     주기억장치에 도달하는데 요구하는 평균시간을 액세스 타임이라고 함


내부기억장치(주기억장치) : 프로그램(메모리) - 명령어+자료

외부기억장치(주변장치-키보드, 모니터...) : file(보조기억장치-소프트웨어)

 

컴퓨터 - 하드웨어 - CPU(Process,Core)

- Memory

- 주변장치

    - 소프트웨어 - Process : CPU 부려먹기 위한 소프트웨어

    - Program : 메모리가 가지고 있는 소프트웨어

    - File : 주변장치가 가지고 있는 소프트웨어

 

1. 주기억장치 - 반도체 메모리 - RAM - SRAM(Static RAM) : 용량 작음, 처리속도 빠름/캐시메모리:레지스터 Flip Flop, CPU가까이

   - DRAM(Dynamic RAM) : 주기억장치/리플레시

- ROM - Mask ROM : 제조할 때 내용 박아버림

    - PROM(Programmable ROM) : 한번씀

    - EPROM(Erasable PROM) : 썼다 지웠다(자외선)

    - EEPROM(Electrically EPROM) : 전기적으로 썼다 지웠다

- Core 메모리

 1.1 RAM(Random Access Memory)

소멸성(휘발성 : Volatile) 메모리

메모리의 번지선(주소)은 용량과 관계 (k bit의 번지선은 2^k의 용량을 가진 메모리에 대한 번지선 bit수)

1K=2^10=1024

1M=2^20=1048576

1G=2^30=1073741824

① SRAM(Static RAM:정적RAM)

기본소자 Flip-Flop회로, 소용량의 메모리에 적합, 소비전력이 DRAM보다 많이 소모

1bit 기억하는데 8개의 트랜지스터

에너지 공급하지 않아도 자료유지/정적이다/서로 주고 받으며 되새김질

용량은 적어도 처리속도 빠름

② DRAM(Dynamic RAM:동적RAM)

1bit의 정보는 콘덴서에 충전된 전하로 이루어짐(콘덴서 : 전류가 끊어졌을 때 자료가 날아가지 않게/전기 비축했다가 필요할 때 사용, 댐과 같은 역할)

집적도가 높다(용량은 크고, 처리속도는 느리다)

가격이 싸다

주기억 장치는 코어메모리와 같이 파괴판독(DRO), 반도체 메모리와 같이 비파괴 판독(NDRO)로 분류할 수 있다

 

 1.2 ROM(Read Only Memory)

프로그램을 처리해주는 프로그램 = 마이크로 프로그램 = 소프트웨어+하드웨어(펌웨어) = 디코더+OR게이트

RAM은 하드웨어에 가깝다, RAM에 있는 소프트웨어는 전원꺼지면 날아감, 사용자가 그냥 쓰기 위한 프로그램/CPU는 완전 하드웨어

① Mask ROM

② PROM

ROM의 입력에 따른 최대 연산의 개수는 2^2^n(n은 ROM의 입력숫자)

ROM으로 전가산기 구현 - 디코더+OR게이트

③ EPROM

④ EEPROM = flash Memory(보조기억장치)

 

* 자료가 메모리에 기억되는 방법

Big Endian : Byte 단위의 정순으로 기억되는 방법

Little Endian : Byte 단위의 역순으로 기억되는 방법

예) 16진수의 값 12345678

Little Endian - 78 56 34 12 / Big Endian - 12 34 56 78

#include<stdio.h>

void main()

{

union equi{

long a;

unsigned char b[4];

}a;

int i;

a.a = 0x13579BDF;

for(i=0; i<4; i++)

printf("%02X", a.b[i]);

} //DF 9B 57 13 (Little Endian)

 

 1.3 Core memory

전원이 끊어져도 기억 내용을 그대로 유지:비휘발성(비소멸성)

core에 꿰어져 있는 도선의 개수는 4개

X구동선, Y구동선(위치선), 금지선(inhibit wire, 다른 사람이 기록하지 못하게 금지), 감지선(sense wire)

파괴 메모리, 원래의 내용을 보존하기 위해서는 복원(재저장:restoreation)회로가 부가적으로 필요

 

 

2. 가상메모리(Virtual Memory)

속도향상이 아니라 주소 공간 확대가 목적

 2.1 단일 프로그래밍

메모리에 사용자 프로그램을 전부 기억시켜 그 프로그램이 종료될 때까지 상주시켜서 처리/단순/짧은 일의 응답시간이 안좋음

-> 스와핑(Swapping) : 수행하고 있는 프로그램을 중단해서 그것을 자기 드럼이나 디스크에 일시적으로 옮긴 후, 다른 서두르고 있는 일에 메모리 할당, Roll-in/Roll-out이라고도 불림

 2.2 다중 프로그래밍

여러개의 작업이 메모리에 상주, CPU활용도를 높이기 위한 방법

① Paging 기법 : PAGE-가상 메모리에서의 일정 크기로 분할한 것/BLOCK-주기억장치에서의 일정 크기로 분할한 것, PAGE FRAME

② Segmentation 기법 : 작업의 크기만큼 메모리를 배정 받아 처리하는 기법

③ Paging segmentation 기법 : Paging기법과 Segmentation 혼합한 형태

 

 

3. 연산기억장치

메모리에 저장된 데이터를 번지에 의해 찾는 것이 아니라 그 내용에 액세스

 

 

4. 캐쉬 메모리(SRAM)

주기억장치와 CPU 사이에 있는 고속 메모리, 주기억장치의 액세스 타임과 CPU의 처리 속도차가 많을 때 속도차를 줄이기 위해 사용

CPU - 레지스터 - 캐시메모리 - RAM(주기억장치) 순 거리

Main Memory(주기억장치) - I/O processor(외부기억장치, 보조기억장치) - 주변 장치                          하위계층:용량크고 속도느림

 |

Cache Memeory(L2캐시:외부/L1캐시:내부, CPU안에, 가격비싸고 속도빠름)

 |

      ALU(CPU)                                                                                                                    상위계층:용량작고 속도빠름

 

① write through 방식 : 갱신될 때마다 캐쉬와 주기억 장치를 동시에 갱신

② write back 방식 : 갱신될 때 캐쉬만 갱신 시키고, 캐쉬에서 제거될 때에 주기억 장치를 갱신

 

Mapping 방법의 종류 - 직접매핑, 어소시에티브 매핑, 세트 어소시에티브 매핑

 

 

5. 병렬처리

계산 속도를 높이기 위해 CPU내에서 동시에 여러개의 작업을 처리하는 것

SISD(Single Instruction Single Data) : CPU1개/1개의 자료에 대해 1개의 명령

SIMD(Single Instruction Multiple Data) : 슈퍼컴퓨터/명령어는 1개인데 데이터가 여러개/동시에 처리

MISD(Multiple Instruction Single Data) : 이론으로만 존재

MIMD(Multiple Instruction Multiple Data) : CPU마다 다 다른일 처리/명령어와 자료를 다 따로 처리

 

병행처리 : 인터럽트 이용해서 동시에 일하는 것 처럼 보이게/ 병렬처리 : 정말 동시에 일하는 것, CPU여러개

 

(1) SISD

1개의 CPU에 의해 순차적인 명령어 처리, 속도를 증가시키기 위한 방법으로 pipeline 처리방법이 있음(병행처리)

CISC x : 명령어마다 처리시간 달라서

RISC o : 파이프라인 처리 가능

단수가 높을수록 효율적

하나의 명령어 처리시간 짧을수록 좋은 것

5개 명령 4개 세그먼트 2.5배/500개 명령 4개 세그먼트 4배효과

명령어 수가 많을 수록 세그먼트 배수만큼 효과

사이클 수 = 세그먼트 + 작업수 - 1

(2) SIMD

(3) MISD

(4) MIMD

Multiprocessor : 하나의 컴퓨터에 CPU여러개 / bus / switch : 크로스바스위치, 오메가 스위치

Multicomputer : 여러개 컴퓨터로 다중 처리 / bus / switch : 메쉬 또는 그리드, 하이퍼큐브

㉠다중처리기의 CPU 연결 방법

① bus형 다중 처리기 : 공유

선형, 링형, 성형

② 크로스바 스위치 다중처리기 : 전용선, 지하철처럼

스위치 갯수 : n×n개

③ 오메가 스위치 다중 처리기 : 다단계 스위치

스위치 갯수 : n/2×

④ 2×2 오메가 스위치 내부 구조 : 4개의 스위치로 구성

㉡다중 컴퓨터의 CPU 연결 방법

① bus 형 다중 컴퓨터

② 그리드 스위치형 다중 컴퓨터

③ 하이퍼 큐브 스위치형 다중 컴퓨터 : 직육면체,

컴퓨터 8개 선3개

컴퓨터 16개 선 4개 - 꼭지점끼리 다시 연결

컴퓨터 32개 선 5개 - 꼭지점끼리 다시 연결

하이퍼 큐브 형태에서 각 컴퓨터에 부여된 주소는 gray code 형태로 부여, 그러면 라우팅이 쉽다(000,001,011,010/100,101,111,110) 원천지주소와 목적지주소를 XOR하면 원천지에서 목적지로 가는 길의 방향이 나옴

④ 하이퍼 큐브형 또는 링형 구조 다중 컴퓨터

 

* 성능을 향상 시키기 위하여

1. CPU를 빠른 것으로 교체 : 응답시간(실행시간)이 단축되므로 처리량 좋아짐, 실행시간과 처리량 모두 개선

2. CPU를 하나 더 추가 : 실행시간은 단축되지 않고, 처리량만 좋아짐

클럭 사이클(clock cycle) : 클럭의 주기, 한 클럭에 대한 시간

클럭 속도 : 1/클럭사이클

CPU 실행시간 : CPU 클럭 사이클 수/클럭속도

CPU 클럭 사이클 수 : 명령어 수 × CPI(한 명령어당 클럭 사이클 수)

MIPS : 초당 몇 백만개 명령어 처리 능력 : 명령어 개수/실행시간×10^6

MFLOPS : 초당 몇 백만개의 부동 소수점수 연산 능력 : 부동소수점 연산개수/실행시간×10^6

 

 

 

 

[출처] 유레카 컴퓨터일반 - 이재환, 이정식

교재를 개인 공부 목적으로 정리한 것입니다. 틀린부분이 있을 수 있습니다.

문제가 될 시 알려주시면 바로 조치하겠습니다.

무단배포나 복사는 금지합니다.


 

 

728x90