유수의 정보처리기사 전자계산기

 

전자계산기 1강

 

칸토르 라는 사람이 집합이라는 수학을 만듬

조지 불 이라는 사람이 집합을 간략화시키는 불대수를 만듬

 

불대수 = 논리회로의 수를 줄임 간략화시킴

 

 

집합 = 인간의 판단을 수학에 담은것

컴퓨터는 그 집합이라는 수학을 이용해 인간의 판단을 컴퓨터화함

집합에대해서 이하링크참조

 

인간의사고 –> 집합 –> 논리회로 –> 불대수

 

논리 게이트 = 논리회로를 구성하는 기본적인 전자 소자

 

AND(논리곱)
image
교집합에 해당
AND의 D자를 기억해 기호를외워라
빵과 우유를 둘다 사주면 참
모두 1일때 결과가 1이됨
마스크를 이용하여 불필요한 부분을 제거함(마스크연산)
image
OR회로(논리합)
image
합집합에 해당
기호가 좀 날렵 (굽음)
빵 또는 우유를 사줌
두개의 데이터를 섞거나 일부에 삽입하는 데 사용(selective set연산)
image
NOT 논리부정(여집합)
image
기호 삼각형에 꼭지가 달림
단항연산=입력값이 하나다
입력정보의 반대값이 출력됨
BUFFER
image
기호 NOT과 비교해서 꼭지가없음
의미 그대로출력
NAND  (AND+NOT)
image
기호 AND에다가 꼭지가 달림
AND의 부정
image
NOR
image
기호 OR에다가 꼭지가달림
OR의 부정
image
XOR(배타적 논리합)
image
exclusive OR = 비교(컴페어 연산)
기호 OR 왼쪽에 쌍커풀같은게 달림
외우는 법 사랑 1=남자 0=여자
남자와 여자가 만나면 참
논리식 외워야됨..
(A・B)+(A・B) <왼쪽 A 오른쪽 B 위에 작대기 올림
image

 

 

 

전자계산기 2장

 

논리회로의 간소화

직렬은 AND

병렬은 OR

image

이런걸 이용해서 간략화를 함

 

 

B+B(not) = B U Bc  = 無

 

논리회로 종류
조합논리회로 입력값에 의해 출력값이 나옴
기억 기능이 없음
가산기,디코더,멀티플렉서
순차논리회로 현상태에따라 출력값이 나옴
기억 기능이 있음
플립플롭(여러개 모이면 레지스터가됨)

 

조합논리회로

 

가산기 덧셈을 수행하는장치
반가산기(하프 에더) 입력2 출력2 =진리표 XOR(사랑회로)와 같음  합(S) =자리올림을 계산하는 값은 AND 결과와 같음  자리올림©
전가산기 반가산기 2개가모인거 = 반가산기2개가 OR회로로 묶임 = 입력3 출력2
디코더 2진수의 코드를 벗겨내서 10진수로 바꿈

입력은 보통

N 입력받으면 2 n승이됨

AND게이트가 주요 구성소자 (NOT도 있긴있지)

인코더

10진수를 2진수로 바꿔줌

시험엔 잘안나옴

멀티플렉서(MUX) 여러개 입력을 받아서 하나만 출력

 

 

순차논리회로

 

플립플롭은 1비트를 기억할수있음

0으로 초기화 R

1로초기화 S

RS –> JK 업그레이드(개념은같음)

리셋도 하지마 셋도하지마 = 현상태유지

 

리셋시켜라 셋시켜라  = 이때만 RS JK두개의 차이가 생김

RS는 병신이됨 = JK는 반전시켜라라고 동작(현상태가 1이면 0이되고 0이면 1이되게끔)

T형 0은 현상태유지 1은 반전

 

3강 자료적 내부표현

내적으로 처리하는 것 = 내부표현 = 연산에 사용되는 수치데이터

외적으로 보여주기 위한 처리= 외부표현 = 문자데이터

 

정보의단위

비트 < 니블 < 바이트 < 워드 < 필드 < 레코드 < 블록 < 파일 < 데이터베이스

비트 2가지상태다 (2진수) = 정보의 최소단위
니블 4비트 = 그렇게 중요하지않음
바이트 8비트 = 1바이트= 외국권에서 문자를 표현할때 딱좋음
워드 컴퓨터가 한번에 처리할수 있는 명령단위 = 중요 = 컴퓨터가 처리할수있는
풀워드 4바이트 =32비트 피시
더블워드 8바이트 = 64비트 피시
   

 

 

워드가 왜 중요하냐

32비트 컴퓨터는 32비트를 가지고 CPU가 한번에 처리가능

 

램 –>(버스) –> CPU

램의 기억공간 하나 32비트

버스가 있는 메인보드도 한번에 던져줄 차선을 32비트를 마련해놓아야함

CPU  플립플롭 32개가 하나의 레지스터를 이룸

 

워드 4바이트 = 32비트 가 얼마나 중요한지 알겠지?

 

 

보수

 

컴퓨터는 어떻게 뺄샘을하는가?

컴퓨터는+밖에 안됨 ㅋ

보수라는 개념을 통해 뺄샘을함

덧셈밖에 못하는 가산기로 보수라는 개념을 이용해 뺄샘을함

덧셈으로 뺄샘을함 ㅋㅋ

 

1의보수 0을 1로 바꾸는 것 = 보수기 =NOT회로를 이용 =컴플리먼트 = 여집합

자리올림수가 발생하면 한번더 더함

2의보수 1의보수를 하고 마지막 +1해서 계산을하면됨 자리올림수가 발생하면 버림 = 1의보수보다 연산효율이 좋음

 

보수 개념:http://dotabi.tistory.com/39

문제예

456을 9의보수를 할려면

 

456

xxx

999

 

543

 

자료의 내부적 표현

 

정수표현 = 고정소수점 = 소수점없음

10진연산=10진 데이터표현 unpack,pack이있음=
2진수인데 10진수인척 형태를 유지하는것

+C(1100)

+D(1101)

-325를 팩형으로 언팩으로 만들어봐

pack = 묶음 = 325D = 연산에 사용 = digit|digit|digit|sign

 

unpack(zone형) = 묶지않음  = F3F2D5 = 입출력시사용 에러를 줄이기위해 숫자구별 = zone|digit|zone|digit|zone|digit|sign|digit

2진연산=2진수 데이터표현=완전히 2진수 부호화 절대치표현,부호화 1의보수표현 ,부호화2의 보수표현

맨앞에 부호비트를 붙임 (양수=0,음수=1)

부호화 절대값 = 양수 부호비트에 0을 넣고 변환된 2진수를 넣고 남는자리에 0을 채움


+12
0  1100
0 000 1100

음수는 세가지임..ㅠㅠ

  • 부호와 절대값
  • 부호를 붙이고 1의보수
  • 부호를 붙이고 2의보수

 

 

부호와 절대값

-25 = 11001(25)

1 11001

1 00 11001

부호를 붙이고 1의보수

1  00110

1 11 00110

부호를 붙이고 2의보수

1 11 00110

1 11 00111

 

 

 

2의보수 만드는게 시험에 많음 1의보수 변환없이 푸는법

오른쪽에서 왼쪽으로 1을 만날때까지 그대로 쓰고 그다음꺼는 1의보수적용 부호는 안건드리고

부호화2의 보수는 -0이 존재하지않아서 좋음..

수표현 공식이 음수쪽 밑에 -1이 없음

8비트의 수표현 공식 문제가 잘나옴

부호화 2의보수 = –128 ~ +127

부호화 1의보수 = –127 ~ +127

 

 

실수 =부동소수점 =소수점이있음 =정밀도높음 =연산시간이걸림

amd가 cpu초반경쟁을 인텔에 처발린 이유가 부동소수점 처리가 느려서(flups)였음

 

소수점이 존나길면 워드길이를 넘어가 귀찮게됨

그래서 정규화를 통해 심플화시킴

0.00000000000002  = 0.2 x 10-12 << 요렇게> _<

등장인물

0.2 = 가수부

10-12(지수부)

 

간단히 바꾸지만 다시 원래되로 변환해줄필요가잇으니 부담이감

 

부동소수점 연산방법

0인지 여부조사

지수가 큰쪽에 일치시킴

0.27×10 5승 + 0.18×10 5승

0.27×10 5승 + 0.0018×10 5승 <<큰쪽으로 일치

 

 

 

 

 

4강 자료의 외부적표현

문자=코드

 

 

BCD 6bit코드 숫자일땐 4비트를 씀 = 컴퓨터가 후져서 줄여서줄인게 이거 5비트는 32개라 문자표현이불가..힘들어.. BCD도 소문자인가 대문자가없음

396을 BCD코드로 바꿔라 하면 숫자는 4비트쓰니  4비트로 바꾸면되

0011 1001 0110

ASCII 7bit코드 얘가 딱좋아 = 이메일,메모장 아스키코드로 저장 = 개인용 컴퓨터, 데이터 통신에 많이쓰임
EBCDIC 8bit코드 대형컴퓨터 시스템에서 씀 256개문자를 표현

EBCDIC

소문자냐 대문자냐 지정 = 존비트 =4비트

디지트비트 =4비트

   

 

기타코드

 

3초과코드(excess-3코드) 3을 더한뒤에 2진수로바꾸면됨 = 자기 보수코드,비가중값 코드임 = 자리값에 의미가 없다는 의미 신경쓰지망.ㅋ

문제

10진수 8을 excess-3코드로표시

8+3해 무조건 = 11

11 = 1101

끝.

그레이코드

BCD코드의 인접하는 비트를 XOR연산하여 만든코드 =비가중값 코드

A/D변환 = 실제로 많이쌓임 = 라우터가 길을 찾을때 그레이코드를 씀 = 1증가될때 1비트만 바뀌는 특징이있음. 이거때문에 아날로그 디지털로 바꿈

 

XOR는 사랑회로

1001

1   << 맨왼쪽은 무조건 내려와

 

2진수를 그레이코드로 기역형태로

1 0 = 1 사랑가능

0 0 =0 끔찍

0 1 = 사랑가능

그레이코드는 = 1101

그레이코드를 2진수로  세모형태로

패리티 비트(패리티 검사코드) 코드의 오류를 검출할때 씀 error검출용 = 짝수개의 에러가나오면 검출못함 ㅠㅠ

 

odd패러티(기수패러티) = 홀수

even 패러티(우수패러티) = 짝수

 

예) 뭔 에러인지는모름

A가 우수패러티(짝수) = 01110  1<<패러티를 짝수에맞춰서 B에던짐(1이3개였는데 1개 패러티넣어서 짝수로만듬)

B는 짝수면 아맞네 하고 홀수면 야시발 이상해 라고 에러를 검출함

 

해밍코드 = 에러코드검출 및 교정이가능

   
   

 

 

5강 기타코드 중앙처리장치(CPU)

뇌 = 연산,제어,기억 = cpu3대 기능

 

제어장치 주기억장치에 기억된 명령을 꺼내어 해독하고 지시신호를 보내는 장치
연산장치 연산을 수행하는 장치
레지스터

MBR = 버퍼레지스터(복수존재)

IR =명령레지스터

MAR=주소 레지스터

program counter = 다음에 실행할 명령어주소를 기억 = 주소를 가져오면 자동으로 +1이됨 (분기가 발생해도)

AC=누산기 =연산결과를 일시적으로 기억

상태레지스터 = cpu의상태를 기억

버스

제어버스 CPU –> RAM  =단방향

주소버스 CPU –> RAM  =단방향

데이터버스 CPU –> RAM  RAM –> CPU  =데이터버스는 양방향이다

 

 

 

 

 

6강 명령어(인스터럭션) = IR(OPR)

 

OP코드(오퍼레이션코드,연산자)  = 실제명령부분 =동사부분 = 명령에는 함수연산,자료전달(MOVE),입출력(INPUT,OUTPUT),제어(JMP)=(순차적으로 실행되는 프로그램의 순서를 바꾸는것) 명령 기능이있음

=명령을 내릴때 워드의 크기를 넘을수없음 = 그렇기에  2분의n개의 명령어를 내릴수있음

 

문제

8비트에 op코드가 4bit인데 명령의 크기는 몇개만들수있나? 2분의4승 개 명령을 만들수있음 즉 16개

 

 

 

 

함수연산 ADD,AND
자료전달기능 Load,Store,Move,Push

 

Load(패치) 하위 에서 상위로 올리는것
Store 상위에서 하위로 기억시키는것

 

 

입출력기능 Input,output
제어기능 GOTO,JMP,IF,call,Return

 

 

단항연산(Unary operator) NOT,complete,shift,Rotate,MOVE
이항연산(바이너리) AND,OR,XOR,XNOR

 

 

NOT 입력1 출력1
반가산기(하프 에더) 입력2 출력2
전가가산기(풀 에더) 입력이3 출력2
디코더 입력이 n개 츨력은 2의n개
멀티플렉서(MUX) 입력이 n개 출력은 오직 1개

 

 

 

자료부(주소부,번지부)Operand부 = DATA의 주소 = 목적어부분

ADD 100,200

100,200 <<오퍼렌드의 주소가 오퍼렌드부임

어드레스필드의 크기 = 최대 메모리용량 =

문제

어드레스필드가 16비트일때 최대메모리용량은 = 2의16승 = 2의10승은 키로바이트 +2의6승 = 64키로바이트

 

 

0주소방식 주소부가 없이 op코드나옴 = 스텍을 기억하세요 = 스텍은 램을이용한 기억 기술 = PUSH POP = 스텍은 LIFO 방식 마지막에 들어온게 가장빨리나온다 = TOP이라는건 스텍 공간이 어디까지인지 확인이가능
1주소방식 오퍼렌드가 하나 오는것 = 누산기를 기억하세요 = 하나오는거랑 누산기에있는 데이터를 더하니까
2주소방식 자료1의 주소에 결과값이 덮혀짐(소멸)
3주소방식 프로그램은 짦아짐 = 명령어가 길어짐 = 잘안씀 = 결과값을 3주소에 저장 소멸되는게 없음

 

참고:http://111plmkoinjhiu.zoa138.net/2054418

 

7강 주소지정방식

서브루틴이 복귀주소는스텍에 저장

a(); a{ b(); };

 

 

오퍼렌드에 주소지정비트가 있어서 구분을함

 

 

즉시 주소지정(Immediaty Addressing) ADD 100,200  << 즉시 비트면 100,200이 주소가아니고 데이터여!! = 주기억장치를 참조하지않음!! 주소를쓰지않으니,  = 실행속도가빠름 = 명령어를 길게 못쓰기때문에 별로 좋진않음..간단한 연산은 괜찮을듯
직접 주소시정(Direct Addirecting Addressing) 1번 주기억장치를 참조함 = ADD 100  = 100번주소에 데이터가 있음!!
간접 주소지정(Indirect Addirecting Addressing) 주기억장치를 복수 참조함 = ADD 100 에 108이있으면 데이터가 아니고 주소라서 한번더 108번주소를 찾아감  = .. 주기억장치가 32비트라하고 오퍼렌드가 4비트면 주기억장치를 16개 밖에 주소지정이 안되는데 간접주소지정을 이용해 나머지 16개을 활용가능! =두번 경유하니까 속도가 느리겠지
계산에 의한 주소지정방식 연산에 의한  = 상대주소 add 100 누산기500 = 실제 데이터는 600번지얌 이라고 연산을해서 주소를 결정함   누산기 말고 인덱스레지스터랑 더하기하는놈은 인덱스 지정방식임..

참고:http://111plmkoinjhiu.zoa138.net/2054684

 

주소설계시 고려사항

 

주소공간과 기억공간의 독립성

주소공간 프로그램 작성시 사용한 주소
기억공간 실제 메모리주소

 

만약에 독립성이아니고 종속성이라 하면 실제 주기억장치의 메모리를 파악해야됨..

 

논리 쉬프트  = 왼쪽은 곱하기 오른쪽은 나누기

 

8강 마이크로 오퍼레이션

굉장히 짦은 시간에 실행되는 컴퓨터의 명령어 = CPU기 2.0헤르츠면 20억분의 1초시간에 실행되는 명령어

image

팍팍튀는거 = 클럭주파수 = 제어신호 = 마이크로 오퍼레이션을 순서적으로 일어나게 하는데 필요한 신호 << 존나중요

 

신호가 튀기고 다음신호 튀기기까지의 사이에 연산이 이루어짐 = 요이땅 = 일반적으로 프로그램 한줄이라고 생각하면됨 (어셈블리어 기준)

일사분란하게 일처리 하기위해 신호를 튀겨줌

 

2.0GHZ  HZ=헤르츠 튀기는거  G = 10억   = 그니까 1초에 20억 신호를 튀김 = 어셈블리어로 짠 20억줄을 1초만에 실행이 가능하다는 얘기 오호..

참고:http://banana8856.tistory.com/entry/capter7

 

무어의 법칙

무어 = 인텔회장 이름 –> cpu속도가 1년에 2배씩 늘어난다함 –> 이말을 무어의 법칙이라함

 

4GHZ이상은 포기함  왜? CPU만 빠르다고 다가아니니까 다른게 cpu속도에 따라와줘야지

그래서 램을 빠르게, 버스를 빠르게 캐쉬등등 부수적장 비들을 CPU의 속도에 맞춰주려는 행위들이 늘어남

 

마이크로 사이클타임 = 마이크로 오퍼레이션 수행에 필요한 시간

마이크로 사이클 타임 부여방식 =튀기는 방법

크게 세개가있음

동기고정식 제일 긴 오퍼레이션을 기준으로 잡아서 튀김 = 가장간단,심플 = 낭비가 일어남 (짦은놈들도 있을거니까)
동기가변식 대에충 긴놈 짦은놈 평균을 잡아서 튀김 = 이것도 구현이 어렵긴함
비동기식 명령어 끝나자마자 튀김 = 길엇다 짦았다 = 낭비되는 시간이없음 =이론이지 구현이안됨…ㅋㅋㅋㅋ

 

 

메이저스테이트

중앙처리가 무엇을 하고있는지 나타냄

한번 튀길때 4가지상태를 돌아감 = 메이저 스테이트 변화과정

인출사이클{패치사이클} = 주기억장치에서 뽑아옴   -> 실행사이클[excute Cycle]   <<직접주소지정방식에는 이2개만 등장

 

간접주소지정이면?  = 인출사이클{패치사이클} –> 간접사이클(인다이렉트 사이클) –> 실행사이클[excute Cycle]

 

4개라메?? 한개없는데

 

인출 사이클 –> 실행사이클 –> 인터럽트사이클 = 돌발신호 =돌발신호가 나오면 먼저대응  해결하고 나면 –> 실행으로 넘어가는게 아니고 인출사이클로 간다 왜? 실행할때 처리하던놈 정보를 주기억장치에서 마저 꺼내와야되니깐 << 이게중요

image

참고:http://111plmkoinjhiu.zoa138.net/2054711

 

20억분의1초동안 4가지의 행동이 있음

그중에 패치사이클의 움직임

MAR <- PC  다음주소를 메모리레지스터에 보존

MBR<-M[MAR]  ㅁ

IR<-MBR[OP]

PC <-PC+1

 

 

인터럽트단계

일단 이것만봐

IEN <- 0

IEN = 인터럽트처리중 다른 인터럽트처리하지 않겠다

 

연산 ADD

MAR <- MBR(ADDR)  <<간접주소일때 나오는거

MBR <- M(MAR)  <<  간접주소일때 나오는거

 

AC <- Ac + MBR  << MBR에가져온 값을 누산기랑 더해  !!이부분이 ADD

간접주소랑 ADD랑 섞어서 나오니 ADD 찾아라하면 ADD만보면되

 

 

LDA = 메모리의 내용을 AC로 가져옴 = Load to AC

MAR <- MBR(ADDR)  <<간접주소일때 나오는거

MBR <- M(MAR)  <<  간접주소일때 나오는거

AC <- 0   << 딴거ADD랑 다 똑같은데 누산기를 0으로 초기화

AC <- AC + MBR  << 0이랑 더하니 가져온값 그대로 ㅇㅋㅇㅋ

 

STA = store AC = AC의 내용을 메모리에 저장

M <- MBR

 

마이크로 프로그램 = 어떤 명령을 수행할 수 있도록 된 일련의 제어 워드가 특수한 기억장치속에 저장된 것으로 각종 제어 신호를 발생시킴 = 주로 ROM에있음

9장 주기억장치

 

RAM 읽기,쓰기 휘발성(컴터끄면 지워짐) = 현재 실행중인프로그램이 여기에 들어감
ROM 읽기만 쓰기안됨 비휘발성(컴터껏다켜도 안지워짐) = 롬안에 마이크로(시스템) 프로그램 이 잇음 = 그리고 진단을함 = 포스트가 있음 = 부트스트랩로더  = 바이오스도있음

 

부팅 –> 롬 –> 포스트 –> 이상없는지 체크 –> 부트스트랩로더 –> 하드디스크에서 운영체제를 찾음 –> 찾아서 램에다 올림

 

메모리에서 순차적으로 처리되는 영역을 캐쉬메모리에둠  (캐쉬메모리는 메모리보다 빠름)

cpu –> 1차적으로 캐쉬메모리를 찾아감 –> 없으면 메모리로감

 

메모리는 느려서 시피유를 따라가지못하니 캐쉬메모리를 넣은거임 캐쉬메모리는 비쌈

 

기억장치의 특성

 

접근시간 = 탐색시간(하드디스크에찾는시간) + 대기시간(하드디스크 팽 가속시간 찾기전에) + 전송시간

사이클시간  >같거나큼  악세스타임

 

밴드위치 = 대역폭 =수도관 = 1초에 전송되는 전기신호(사용되는 비트수) = 굵은전선이 대역폭이큼 단순히

파괴성메모리 = 데이터를 한번읽으면 사라지는거 = 대표적으로 자기코어 = 요즘은 잘안씀 = 초창기에 사용된 주기억장치임

접근방식
순차 접근 저장매체 SASD = 자기테이프  = 카세트테이프같은..순서대로 처리하잖아 되감기한다치면
직접 접근 저장매체 DASD = 시디롬,램,하드디스크 등등

 

재충전하는 메모리 DRAM = 동적메모리 = 보통 일반램
정적 메모리 SRAM = 컴터꺼질때까지 데이터보존 = 재충전안하는 SRAM이빠름 =고속 =비쌈 = 캐쉬메모리

 

 

롬의 종류
MASK ROM 여러부은 핸드폰 = 공장에서 찍혀나옴
PROM 한번 쓰고 읽기만됨 = 공시디같이
EPROM UV = 자외선을 이용  = 읽기쓰기가능 <<롬라이터라는 장비가 필요 우리피시엔 없음
EPROM 전기  = 요즘많이씀 = 플래시메모리로 발전 =언젠가는 하드디스크를 대처할지도=읽기쓰기가능 <<롬라이터라는 장비가 필요 우리피시엔 없음

 

 

10장 기억장치용량,보조기억장치

 

반도체 기억소자 구성

 

워드의수와 워드의크기를 가지고 레지스터의크기를 알수있다

 

워드의크기 = 메모리버퍼 레지스터 = 인스트럭션 레지스터 = MBR = DR = IR

워드의수(워드의 공간) = 주기억장치의 주소수(주소선의 수) = MAR =PC

 

워드의 크기를 지정안해주면 1바이트로 보면됨

문제1 기억용량이 1MByte일 때 필요한 주소선의 수는?

1 X 1024 X 1024 =  1버리고  2의10 x 2의10승 = 2의20승 = 주소선의 수는 20비트 =왜??이런식으로 게산? 생각해보고 100만개를 표현하기위해 0,1이 몇개있어야 표현이되는지

문제2 컴퓨터의 메모리 용량이 16K X 32bit 일때 MBR과 MAR은?

 

32bit 워드의크기 = MBR = 32bit답끝

16k의 = 16은 2의 4승이고 k는 1024 = 2의 10승 이니까 지수법칙으로 10+4해서 =14 = 주소크기 = MAR은 14bit이다 끝

 

보조기억장치

 

보조기억장치 종류

자기테이프 = 순차적으로만 기록가능 = SASD = 용량만 대빵큼(근데 하드디스크한테 따라잡힘) = 주소의 개념을 사용하지않음 = 속도도느림

 

IBG <-논리레코드 –> IBG

IBG에서 멈췄다 논리레코드에서 존나빨리 가속함

논리레코드는 데이터를 읽고 = 이 단위를 블록이라고도함

IBG에서 멈출때 연산을 함

 

블록 팩터 = 블럭안의 논리레코드가 몇개냐  = 블록크기 / 레코드크기 =

 

스테이징 = Load = 무대위에 올린다 =주기억장치에 올린다

 

디스크를 여러장겹쳐서 만든 기억장치 (보통4장) = DASD 직접접근이가능

 

구성요소

읽고 쓰기 헤드

디스크

 

트렉  = 데이터가 쓰여져있는 길

섹터 = 일정구간

실린더 = 디스크4장이 있다고 하면 트렉이 가리키고 있는것 자체,  논리적인 단위를 실린더라함

 

트렉까지 가는시간 = seek time

섹터를 찾는시간 =search time

 

HDD는 일반적으로 등각속도로 움직임 = 일정한속도로 데이터를 읽음 = 심플한게 좋음  = 하드디스크는 안쪽섹터나 바깥섹터나 용량크기 같음 = 어 그러면 바깥쪽 트렉은 안쪽보다 넒으니 손해네

 

1분에 7200 RPM  = 1초120번회전

CD-ROM 은가변적이다 = 소리들어봐 윙윙 안쪽은 천천히 바깥쪽은 빠르게 = 기니까  = 가변속도 운동이라함

 

11강 특수기억장치

 

연관기억장치 = Associative memory = CAM(컨텐트 어드레스블 메모리) = 주소에 의해 접근하지않고 기억된 내용의 일부를 가지고  억세스 가능 = 휴대폰 검색할때 ㅇ치면 이씨 성막나오지? = 검색속도가빠름 =별도의 하드웨어가 필요하므로 돈이들어감 = 매핑테이블이 필요(빠른검색을 위해)

 

복수 모듈 기억장치 = 메모리 인터리빙 기법을 쓰는 장치 = 모듈은 조각이지 = 실제램 보면 칩이 여러개 달려있지? 512메가 램이면 그 칩에 나눠짐 그 나눠진 메모리끼리 쓰는 기법 = 나누면 뭐가 좋아?? DRAM은 재충전을 하는데 그때 쓰기가안되는데 나눠놓으면 다른쪽으로 우회할수가있음 = 결론은 속도향상임 = 더정확히는 접근속도향상

 

캐시메모리 = SRAM으로 구성 =고속 = 비쌈

 

 

cpu내부에있는 캐쉬메모리도 있음 = L1캐쉬 (필수)  = L2캐쉬(있으면 좋음 필수가아님)  = L2캐쉬 뺀컴퓨터를 셀러런이라 부름 단가를 낮추려고 = 그냥 팬티엄이면 L1,L2둘다있는거임

 

cpu외부에 있는 캐쉬메모리도 있음

 

캐쉬메모리 관련 용어 = 참조의 국한성(locality of reference)구역성(지역성) = 주기억장치에 주로쓰는 부분을 캐쉬에 가져가니까 그걸 지역성이론이라 하는거임

적중률 = 캐쉬에 있으면 cache hit 없으면 miss  hit가 많을 수록 적중률이 높고 좋다!

 

가상기억장치(버추어 메모리) = 메모리를 활용하는 기술 = 용량이많은 HDD의 일부를 주기억장치야라고 설정하는 기술 =속도 증가는 없음(램인척한 하드니까) = 주요 목적은 주소공간의확대하기위해

메모리가 없어서 파워포인트를 실행못할때 안쓰는 아래아한글을 가상메모리로 내리는거임!

아래한글을 다시실행하면 다시램으로 불려옴 = 이걸 스테이징이라함

쓰레싱 현상= 어느정도 프로세스를 실행하면 cpu효율이좋아지는데 어느순간 넘어가면 급격히 떨어짐 (어 나도 경험한적있음)= 그 이유는 프로그램이 실행하는것보다 가상메모리에서 끄집어 내렸다 올렸다 하는데 시간이 더 걸려서 그런거임 아하

가상기억장치의 관리기법

페이징기법 가상메모리 공간을 똑같이 균등이 짤라서 씀 = 빈낭비 공간이 안좋음 = 속도는 여기가좋음 생각 없이 균등이 자르니까
세그멘테이션 기법 가변적으로 짤라서 씀. 가상메모리에서 올릴때 프로세스 크기에 따라 잘라줌 =공간효율이좋음 = 속도가 느림 생각을해서 짤라야하니까

 

 

주기억장치에서 짤린거 = 블록  = 기억공간

가상메모리에서 짤린거 = 페이지 = 주소공간

 

문제 예

64k인 주소공간과 4k인 기억공간을 가진 컴퓨터의 경우 한페이지가 512워드로 구성된다면 페이지와 블록수는 각각 얼마인가

 

주소매핑 = 주소매핑은 가상주소를 실기억장소로 변환하는 작업

 

12강 입/출력 제어장치

DMA,채널, =출력을 제어해주는 제어기

입출력 인터페이스 =     (기계적인 주변장치(I/O) = 존나느림   != 에반해 CPU = 전자 장치 = 존나빠름 ) 2개를 이어주는 것

 

입출력 버스 = 데이터,주소,제어버스 가있음

 

주소,제어 버스 = CPU –> 램  = 단방향

데이터버스 = 양쪽다 = 양방향

 

기억장치와 입출력 장치의 동작 차이점

 

비교항목 입.출력 장치 기억장치
동작의 속도 느림 빠름
정보의 단위 block word
착오발생률 많음 적음(cpu는 웬만하면 고장안남 고장나면 과열때문에)
     

 

 

 

비동기 데이터 전송 = 무대포로 보내는 거 = 타이밍을 안맞추는거

 

병행처리

입출력장치는 존나느리고 주기억장치 램은 졸 빠름

인쇄를 한다치면 입출력장치 속도에 맞춰줘야함 =

그래서 생각한게 인쇄명령 내리고 자기는 딴거 하는것을 병행처리라함

그 기법에 이하와 같이 2개가있음

버퍼링 램 –> 입출력장치에도 램이 존재해서 명령을 보냄 (주기억장치 램은 빠지고 딴일을 함)
스풀링 램 –> 하드디스크에 저장 –> 입출력장치가  (램은 빠지고 딴일을 할 수 있음)

 

 

 

입출력 제어방식

발전순서

프로그램에 의한 I/O –> 인터럽트에의한 I/O –> DMA에의한 I/O –> Channel에의한 I/O

크게 2개로 나눠짐

프로그램,인터럽트에의한 I/O제어 CPU가함 = 입출력 장치는 너무느린데 CPU가 그걸관리하기가 그래 ..그시간에 빠른애들 제어하는게 효율적 =여튼 CPU를 빡시게하는 원인임
DMA,Channel에의한 방식은 CPU가 간섭을안함 = 입출력 제어 방식 손뗌 = 훨씬좋지

 

4개를 자세히 한번보자

프로그램에 의한 I/O 플래그신호를 cpu가 일일이 받아서 제어 = 너 다됫니?바쁘니? 등등을 cpu가 체크
인터럽트에의한 I/O 나 입력할게 있어! cpu는 잠깐멈추고 입출력 관리를함 = 그동안은 놀아야됨 = 그대신 눈치는 안봐도되지 계속 돌봐줄필요는 없어짐 지가 말을 걸어주니까
DMA에의한 I/O Direct Memory Access = cpu제어없이 각장치마다 메모리와 바로 직통보내게 함 = 서로보낼라고 해서 충돌이일어남 = 신호등이 없음  =엄밀히 말하면 cpu제어는 받음.. = 사이클스틸링을 씀 = 사이클을 훔친다.. = 인터럽트보다 훨좋다

인터럽트는 모든게 끝나고 i/o가 실행됨 근데 사이클스틸링은 cpu가 쓰는 부분을 세분화시켜서 끝나면 바로 i/o를 실행할수있게함

fetch –> i.P –> EX

fetch –> i.P –> 이구간 입출력을함

EX사이클을 훔쳤네? 조금더 빨라진이유를 알겟지

Channel에의한 I/O 프로세서가 2개있음 cpu과 채널 = 채널은 신호등임 경찰관임 = 메모리와 직통선을 만들고 채널이 메모리에 접근하는거 관리  =정확하게 cpu제어를 안받음. = cpu가 모든거 다 관리하기 힘드니까 시다바리 채널을 만듬 = 입출력관리 제어를 전용으로 하는 프로세서 채널(IOP) = 덜떨어지는 애들 모아서 반장이 따로관리

 

13강 인터럽트와 병렬처리기법

인터럽트 = 예기치 않은 상황이 발생한 경우(에러 뿐만은아님) 실행중인 작업을 중단하고 발생된 상황을 우선처리하는 것 =

하드웨어,소프트웨어 인터럽트 가있음

동시에 여러 인터럽트가 발생했을때 처리해야될 우선순위를 정해놈 하드웨어가 처리 우선순위가 높음

 

인터럽트 우선순위

정전 > 기계검사 > 외부 > 입출력 > 프로그램 > SVC(슈퍼바이저 = 감시)

 

전원 인터럽트 전원 이상 = 컴퓨터가 끊기면 끗 =가장 무시무시한 인터럽트
외부인터럽트 =(익스터널 인터럽트)

타이머에 의해 규정된 시간을 알리는경우 =시간 딱 지나면 안되도록 제한거는것 = 키보드로 인터럽트 키를 누를경우(오퍼레이터의 콘솔 조작이라고도 함) = 사용자가 뭐 어떤 조작을 해서 꺼버리는것

모니터,키보드 = 표준입출력장치 = 콘솔이라 부름

내부 인터럽트 트랩이라고도함 = 트랩은 컴퓨터를 검사하는것 = 오버플로우 언더플로우시 발생 = 소프트웨어적 인터럽트
소프트웨어 인터럽트 SVC인터럽트 = 감시  = 운영체제(프로그램)가 필요에 의해 인터럽트를 거는것

 

 

 

인터럽트 요청 신호발생(IRQ)    –> 현재 실행중인 프로그램을 완료하고 –> 인터럽트 사이클 을처리 완료후–> 복귀주소를 이용해 패치사이클로 들어감(아까하던거 다음꺼를 속이어서 하는거임)

 

인터럽트 발생시 CPU가확인해야할 사랑 =

1 프로그램카운터 내용(복귀해서 게속 처리할려고) =

2 인터럽트 서비스루틴의 시작 어드레스 발생 = 서브루틴 실행하는거랑 똑같음 개념이

3 레지스터내용 기억=결과값 알아야되니

인터럽트 반응시간 = 대기시간 = 인터럽트 요청하고 처리하기까지의 시간

 

인터럽트 처리 루틴 = 벡터테이블= 어떤 인터럽트가 걸려서 이주소에가면 대책방법이 있다 라는 처리에 관련한 인터럽트

 

인터럽트 발생시 복귀주소를 스텍에 담아놈  <<중요

 

우선순위
폴링  소프트웨어 적으로 우선순위 판별  = 느림 = 은행에 도둑이 들엇는지 계속 체크
데이지 체인 하드웨어 적으로 우선순위 판별 = 빠름  = 은행에 도둑이 들면 비상버튼을 누름 = 비쌈 = 인터럽트 발생하는 모든 장치들을 직렬방식으로 해놈  = 직렬 우선순위란 a ,b,c,d   b가인터럽트 요청하면 c,d는 아가리묵념 a는 요청가능 우선순위가 높으니

 

병렬우선순위방식 = 직렬보다 효율이높음 =각각 인터럽트 요청이가능

 

플린의 분류 =플린이란 학자가 컴퓨터 명령과 종류의 흐름에 따라 종류를 분류

SISD 하나의 명령에 하나의 데이터를
SIMD 하나의 명령에 여러개의 데이터를 처리
MISD 여러명령이 하나의 데이터를=실제로 사용안함
MIMD 복수 명령이 복수 데이터를

()=이게 바로 병렬처리

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です