-
컴퓨터일반 - 5. 기억장치컴퓨터+a/컴퓨터일반 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'컴퓨터+a > 컴퓨터일반' 카테고리의 다른 글
컴퓨터일반 - 7. 데이터 통신 (0) 2017.06.03 컴퓨터일반 - 6. 입출력 (0) 2017.04.30 컴퓨터일반 - 4. 명령어 (0) 2017.04.13 컴퓨터일반 - 3. 연산 (0) 2017.04.07 컴퓨터일반 - 2. 자료표현 (0) 2017.04.06